Php 使用if-else语句的电子邮件验证不允许它继续检查第一个if是否存在错误?

Php 使用if-else语句的电子邮件验证不允许它继续检查第一个if是否存在错误?,php,email-validation,Php,Email Validation,我有: if(isset($\u POST['submit'])){ if(空($name)){ echo“错误:缺少名称”; }else if(空($phone)| |空($email)){ echo“错误:您必须插入电话号码或电子邮件”; }如果(!preg_match('/[A-Z0-9.\%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}/',$email)){ echo“错误:请插入有效电子邮件”; }否则{ 邮件(“anEmail@hotmail.com“,”每月特价邮件“,

我有:

if(isset($\u POST['submit'])){
if(空($name)){
echo“错误:缺少名称
”; }else if(空($phone)| |空($email)){ echo“错误:您必须插入电话号码或电子邮件
”; }如果(!preg_match('/[A-Z0-9.\%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}/',$email)){ echo“错误:请插入有效电子邮件
”; }否则{ 邮件(“anEmail@hotmail.com“,”每月特价邮件“, “姓名:$Name 电子邮件:$Email 电话号码:$Phone 评论:$Comment“,$From:$email”); 回显“消息已发送
”; } }
如果不使用else if,我如何检查所有这些问题? 当我使用elseif时,它检查第一个if语句,如果有问题,它将不会继续检查该语句后面的其他if语句


有什么想法吗?谢谢

您可以使用
try
..
catch
语句进行这样的错误检查。
每当遇到应该生成错误的情况时,可以使用
抛出新异常
子句。

可以使用
try
catch
语句进行如下错误检查。
每当遇到应该生成错误的情况时,可以使用
抛出新异常
子句。

使用脏标志。全部选中并将消息附加到脏变量。

使用脏标志。全部选中并将消息附加到脏变量。

使用:

if(isset($_POST['submit'])) {
    if (empty($name)) {
        echo'<span class="error">ERROR: Missing Name </span><br/>';
    } else if(empty($phone) || empty($email)) {
        echo'<span class="error">ERROR: You must insert a phone number or email</span><br/>';
    } else if(!preg_match('/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/', $email)) {
        echo'<span class="error">ERROR: Please Insert a valid Email</span><br/>';
    }  else {
        mail( "anEmail@hotmail.com", "Monthly Specials Email",
            "Name: $name 
            Email: $email 
            Phone Number: $phone
            Comment: $comment", "From: $email" );
        echo'<span id="valid">Message has been sent</span><br/>';
    }
}
使用:


您可以像这样收集数组中的所有错误:

$error = 0;
if(empty($var1)){ $error = 1; }
if(empty($var2)){ $error = 1; }
if(empty($var3)){ $error = 1; }
if(empty($var4)){ $error = 1; }
if(empty($var5)){ $error = 1; }

if($error > 0)
{
   // Do actions for your errors
}
else
{
   // Send Email
}
if(isset($\u POST['submit'])){
$errors=array();
if(空($name)){
$errors[]=“错误:缺少名称
”; } 如果(空($phone)| |空($email)){ $errors[]=“错误:您必须插入电话号码或电子邮件
”; } 如果(!preg_match('/[A-Z0-9.\%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}/',$email)){ $errors[]=“错误:请插入有效的电子邮件
”; } 如果($errors){ echo“有一些错误:”; 回声“
  • ”,内爆(“
  • ”,$errors),“
    • ”; }否则{ 邮件(“anEmail@hotmail.com“,”每月特价邮件“, “名称:$Name\n”。 “电子邮件:$Email\n”。 “电话号码:$Phone\n”。 “评论:$Comment”,“发件人:$email”); 回显“消息已发送
      ”; } }

使用此功能,您可以检查所有需求并报告所有错误,而不仅仅是第一个错误。

您可以在如下数组中收集所有错误:

$error = 0;
if(empty($var1)){ $error = 1; }
if(empty($var2)){ $error = 1; }
if(empty($var3)){ $error = 1; }
if(empty($var4)){ $error = 1; }
if(empty($var5)){ $error = 1; }

if($error > 0)
{
   // Do actions for your errors
}
else
{
   // Send Email
}
if(isset($\u POST['submit'])){
$errors=array();
if(空($name)){
$errors[]=“错误:缺少名称
”; } 如果(空($phone)| |空($email)){ $errors[]=“错误:您必须插入电话号码或电子邮件
”; } 如果(!preg_match('/[A-Z0-9.\%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}/',$email)){ $errors[]=“错误:请插入有效的电子邮件
”; } 如果($errors){ echo“有一些错误:”; 回声“
  • ”,内爆(“
  • ”,$errors),“
    • ”; }否则{ 邮件(“anEmail@hotmail.com“,”每月特价邮件“, “名称:$Name\n”。 “电子邮件:$Email\n”。 “电话号码:$Phone\n”。 “评论:$Comment”,“发件人:$email”); 回显“消息已发送
      ”; } }
有了它,您可以检查所有需求并报告所有错误,而不仅仅是第一个错误。

尝试以下方法:

if (isset($_POST['submit'])) {
    $errors = array();
    if (empty($name)) {
        $errors[] = '<span class="error">ERROR: Missing Name </span><br/>';
    }
    if (empty($phone) || empty($email)) {
        $errors[] = '<span class="error">ERROR: You must insert a phone number or email</span><br/>';
    }
    if (!preg_match('/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/', $email)) {
        $errors[] = '<span class="error">ERROR: Please Insert a valid Email</span><br/>';
    }
    if ($errors) {
        echo 'There were some errors: ';
        echo '<ul><li>', implode('</li><li>', $errors), '</li></ul>';
    } else {
        mail( "anEmail@hotmail.com", "Monthly Specials Email",
            "Name: $name\n".
            "Email: $email\n".
            "Phone Number: $phone\n".
            "Comment: $comment", "From: $email");
        echo'<span id="valid">Message has been sent</span><br/>';
    }
}
if(isset($\u POST['submit'])){
$errors=array();
if(空($name)){
$errors[]=“缺少名称”;
}
如果(空($phone)| |空($email)){
$errors[]=“您必须插入电话号码或电子邮件”;
}
如果(!preg_match('/[A-Z0-9.\%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}/',$email)){
$errors[]=“请插入有效电子邮件”;
}
如果(!empty($errors)){
对于($i=0;i',$errors[$i]);
}
}否则{
邮件(“anEmail@hotmail.com“,”每月特价邮件“,
“姓名:$Name
电子邮件:$Email
电话号码:$Phone
评论:$Comment“,$From:$email”);
回显“消息已发送
”; } }
试试这个:

if (isset($_POST['submit'])) {
    $errors = array();
    if (empty($name)) {
        $errors[] = '<span class="error">ERROR: Missing Name </span><br/>';
    }
    if (empty($phone) || empty($email)) {
        $errors[] = '<span class="error">ERROR: You must insert a phone number or email</span><br/>';
    }
    if (!preg_match('/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/', $email)) {
        $errors[] = '<span class="error">ERROR: Please Insert a valid Email</span><br/>';
    }
    if ($errors) {
        echo 'There were some errors: ';
        echo '<ul><li>', implode('</li><li>', $errors), '</li></ul>';
    } else {
        mail( "anEmail@hotmail.com", "Monthly Specials Email",
            "Name: $name\n".
            "Email: $email\n".
            "Phone Number: $phone\n".
            "Comment: $comment", "From: $email");
        echo'<span id="valid">Message has been sent</span><br/>';
    }
}
if(isset($\u POST['submit'])){
$errors=array();
if(空($name)){
$errors[]=“缺少名称”;
}
如果(空($phone)| |空($email)){
$errors[]=“您必须插入电话号码或电子邮件”;
}
如果(!preg_match('/[A-Z0-9.\%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}/',$email)){
$errors[]=“请插入有效电子邮件”;
}
如果(!empty($errors)){
对于($i=0;i',$errors[$i]);
}
}否则{
邮件(“anEmail@hotmail.com“,”每月特价邮件“,
“姓名:$Name
电子邮件:$Email
电话号码:$Phone
评论:$Comment“,$From:$email”);
回显“消息已发送
”; } }
if(isset($\u POST['submit'])){
$valid=true;
if(空($name)){
echo“错误:缺少名称
”; $valid=false; } 如果(空($phone)| |空($email)){ echo“错误:您必须插入电话号码或电子邮件
”; $valid=false; } 如果(!preg_match('/[A-Z0-9.\%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}/',$email)){ echo“错误:请插入有效电子邮件
”; $valid=FALSE; } 如果($有效){ 邮件(“anEmail@hotmail.com“,”每月特价邮件