如果PHP电子邮件表单中的文本为';这还不完全

如果PHP电子邮件表单中的文本为';这还不完全,php,forms,email,Php,Forms,Email,我对PHP还不熟悉,我无法理解这一点。下面您将看到我的PHP电子邮件表单。问题是,如果用户忘记输入电子邮件,并且已经写了一条长消息,然后点击提交。然后页面将重新加载,出现一条短信说:你忘了发电子邮件了。但是现在整个信息都从表格中删除了,他们不得不重新写一遍。 如果不重新加载页面/删除已输入的信息,我如何回应他们忘记了电子邮件或消息 <?php function email() { $email = $_REQUEST['email']; $message = $_REQUEST['mes

我对PHP还不熟悉,我无法理解这一点。下面您将看到我的PHP电子邮件表单。问题是,如果用户忘记输入电子邮件,并且已经写了一条长消息,然后点击提交。然后页面将重新加载,出现一条短信说:你忘了发电子邮件了。但是现在整个信息都从表格中删除了,他们不得不重新写一遍。 如果不重新加载页面/删除已输入的信息,我如何回应他们忘记了电子邮件或消息

<?php

function email() {
$email = $_REQUEST['email'];
$message = $_REQUEST['message'];
if ($email)
if ($message)

{
//send email
$to = "xxx@example.com";
$subject = "xxx" ;
$from = $_REQUEST['email'] ;
$message = $_REQUEST['message'] ;
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
header('Location: sent/');
exit();
}
else  {
echo "You forgot your message.";
} 
else  {
echo "You forgot your email.";
} 
}
?>



使用POST将所有内容转到下一页。您可以在其中使用隐藏字段并保存所有可用值:

<input type="hidden" value="<?php echo $_POST['value']; ?>" />

只需像这样回显消息:

<textarea id="textarea_mail" accept-charset="ISO-8859-1" name='message'   
   cols="30" rows="5"  placeholder="Your message">
<?php echo $_REQUEST['message']; ?>
</textarea>


但是,如果您涉及到一些java脚本或jQuery,您可以在表单提交之前对其进行验证。

您需要在字段中添加相关的
$\u POST
值。如果有,将显示以下信息:

<form class="mail_form" accept-charset="ISO-8859-1" method='POST'>
    <input class="input_mail" name='email' type='text' placeholder="Your email" value="<?php echo @$_POST['email']; ?>">
    <textarea id="textarea_mail" accept-charset="ISO-8859-1" name='message'   cols="30" rows="5"  placeholder="Your message">
        <?php echo @$_POST['message']; ?>
    </textarea>
    <input class="send_mail" type='submit' name='submit'>
</form>

<?php 
    if(isset($_POST['submit']))
    {
        echo email();
    }
?> 

呼叫您的$message

<textarea id="textarea_mail" accept-charset="ISO-8859-1" name='message'   
cols="30" rows="5" placeholder="
<?php if(isset($message)) { echo $message; } else { echo "Your message";} ?>" >
   </textarea>

当邮件是发送< /p>搜索如何验证窗体时,您可能需要考虑在JavaScript中添加一些客户端验证。谢谢您的回答。正如我写的,我对PHP是新手。但是你写的最后一件事:未设置($message);那是为了安全吗?我在哪里添加这个函数?很抱歉问了新手问题!:)发送邮件时,最好清空变量。表单将再次为空。我会编辑我的帖子,让你知道该放在哪里。@David当然!您只需在电子邮件输入上使用相同的逻辑即可。更新了我的答案。

<textarea id="textarea_mail" accept-charset="ISO-8859-1" name='message'   
cols="30" rows="5" placeholder="
<?php if(isset($message)) { echo $message; } else { echo "Your message";} ?>" >
   </textarea>
unset($message);


function email() {
$email = $_REQUEST['email'];
$message = $_REQUEST['message'];
if ($email)
if ($message)

{
//send email
$to = "xxx@example.com";
$subject = "xxx" ;
$from = $_REQUEST['email'] ;
$message = $_REQUEST['message'] ;
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
header('Location: sent/');
exit();
 unset($message);
 unset($mail);
}
else  {
echo "You forgot your message.";
} 
else  {
echo "You forgot your email.";
} 
}
?>