【问题标题】:Form Validate with preg_match and send mail if all conditions are filled如果满足所有条件,则使用 preg_match 进行表单验证并发送邮件
【发布时间】:2014-01-20 15:37:08
【问题描述】:
    //validate email

    if(empty($email)){
        $mailErr = "<div class='errors'>Email can not be empty.</div>";
    }else{
        if(!(preg_match("/^[a-zA-Z0-9\-_]+(\.[a-zA-Z0-9\-_]+)*@[a-z0-9]+(\-[a-z0-9]+)*(\.[a-z0-9]+(\-[a-z0-9]+)*)*\.[a-z]{2,4}$/", $email))){
            $mailErr = "<div class='errors'>Please input a valid email address.</div>";
        }
    }


    //validate message
    if (empty($message)) {
        $messageErr = "<div class='errors'>Message can not be empty.</div>";
    }

如果两个验证都为真,则发送邮件。请帮我。我该如何写这个条件。我想如果两个条件都满足然后发送邮件。

【问题讨论】:

  • 只使用两个单独的 if 语句
  • 您可以在开头使用一个简单的标志 - $noErrors = true,并在发生错误时在 if 条件中将其设置为 false。在发送之前,您检查该标志的值。

标签: php validation email


【解决方案1】:
// Validate email
if (empty($email)) {
    $mailErr = "<div class='errors'>Email can not be empty.</div>";
} else if (!(preg_match("/^[a-zA-Z0-9\-_]+(\.[a-zA-Z0-9\-_]+)*@[a-z0-9]+(\-[a-z0-9]+)*(\.[a-z0-9]+(\-[a-z0-9]+)*)*\.[a-z]{2,4}$/", $email))){
    $mailErr = "<div class='errors'>Please input a valid email address.</div>";
} else {
    $valid_email = true;
}

// Validate message
if (empty($message)) {
    $messageErr = "<div class='errors'>Message can not be empty.</div>";
}else{
    $valid_message = true;
}

if ($valid_email && $valid_message) {
    // Send the email
}

【讨论】:

    【解决方案2】:

    有一个使用FILTER_VALIDATE_EMAIL 验证电子邮件地址的简短表单,您可以只保护一个包含错误状态的变量。

    $error = false;
    
    if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
       $mailErr = "<div class='errors'>Please input a valid email address.</div>";
       $error = true;
    }
    
    if (empty($message)) {
       $messageErr = "<div class='errors'>Message can not be empty.</div>";
       $error = true;
    }
    
    if(!$error) {
        //Send message here
    }
    

    您也可以不使用状态变量而使用简短形式(但不能同时检查两者):

    if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
       $mailErr = "<div class='errors'>Please input a valid email address.</div>";
    } else if (empty($message)) {
       $messageErr = "<div class='errors'>Message can not be empty.</div>";
    } else {
        //Send message here
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      • 1970-01-01
      • 2022-08-20
      相关资源
      最近更新 更多