php中的PHPMAILER表单验证

php中的PHPMAILER表单验证,php,Php,我有一个联系我们的页面,我需要发送一封电子邮件使用PHPMAILER时,所有字段都填写。我有以下验证代码: $msg = ""; $msg_2 = ""; $msg_3 = ""; $msg_4 = ""; if(empty($_POST['email_subject'])){ $msg = "<span class='text-danger'>Please select a subject for your email.</span>"; } if(empty

我有一个联系我们的页面,我需要发送一封电子邮件使用PHPMAILER时,所有字段都填写。我有以下验证代码:

$msg = "";
$msg_2 = "";
$msg_3 = "";
$msg_4 = "";
if(empty($_POST['email_subject'])){
    $msg = "<span class='text-danger'>Please select a subject for your email.</span>";
}

if(empty($_POST['message'])){
    $msg_2 = "<span class='text-danger'>Please enter your message.</span>";
}

if(empty($_POST['email_2'])){
    $msg_4 = "<span class='text-danger'>Please enter a valid email address.</span>";
}

if($mail->Send()) {
    header('Location: thankYou_2.php');
}
$msg=”“;
$msg_2=“”;
$msg_3=“”;
$msg_4=“”;
如果(空($_POST['email_subject'])){
$msg=“请为您的电子邮件选择主题。”;
}
if(空($_POST['message'])){
$msg_2=“请输入您的信息。”;
}
如果(空($_POST['email_2'])){
$msg_4=“请输入有效的电子邮件地址。”;
}
如果($mail->Send()){
标题('Location:thankYou_2.php');
}

我有三个字段必须填写。现在,如果用户输入了电子邮件地址,并且邮件中没有电子邮件主题,则表单将被传递并发送电子邮件。但是,如果用户输入的电子邮件地址和电子邮件主题没有消息,表单将不会通过,并显示错误消息。我需要让用户填写所有字段,然后发送电子邮件。

看起来不管怎样都会发送。您需要检查是否有错误。下面可能是一个非常简单的方法

$error = false;
if(empty($_POST['email_subject'])){
    $error = true;
    $msg = "<span class='text-danger'>Please select a subject for your email. 
</span>";
}

if(empty($_POST['message'])){
    $error = true;
    $msg_2 = "<span class='text-danger'>Please enter your message.</span>";
}

if(empty($_POST['email_2'])){
    $error = true;
    $msg_4 = "<span class='text-danger'>Please enter a valid email address.</span>";
}

if($error===false) {
    $mail->Send();
    header('Location: thankYou_2.php');
}
$error=false;
如果(空($_POST['email_subject'])){
$error=true;
$msg=“请为您的电子邮件选择一个主题。
";
}
if(空($_POST['message'])){
$error=true;
$msg_2=“请输入您的信息。”;
}
如果(空($_POST['email_2'])){
$error=true;
$msg_4=“请输入有效的电子邮件地址。”;
}
如果($error==false){
$mail->Send();
标题('Location:thankYou_2.php');
}

JD Simpkinsanser很有用。您还可以使用if/else if语句:

if(!isset($_POST['email_subject']) || empty($_POST['email_subject'])){
  $msg = "<span class='text-danger'>Please select a subject for your email.</span>";
}
else if(!isset($_POST['message']) || empty($_POST['message'])){
  $msg_2 = "<span class='text-danger'>Please enter your message.</span>";
}
else if(!isset($_POST['email_2']) || empty($_POST['email_2'])){
  $msg_4 = "<span class='text-danger'>Please enter a valid email address.</span>";
}
else if($mail->Send()) {
  header('Location: thankYou_2.php');
}
if(!isset($_POST['email_subject'])| |空($_POST['email_subject'])){
$msg=“请为您的电子邮件选择主题。”;
}
如果(!isset($_POST['message'])| |为空($_POST['message'])){
$msg_2=“请输入您的信息。”;
}
如果(!isset($_POST['email_2'])| |为空($_POST['email_2'])){
$msg_4=“请输入有效的电子邮件地址。”;
}
else if($mail->Send()){
标题('Location:thankYou_2.php');
}

修复了缩进后,您是否看到在发送电子邮件之前没有进行任何错误检查?没问题!很高兴我能帮忙。