【问题标题】:php integrated function form mail validation doesnt work FILTER_VALIDATE_EMAILphp 集成功能表单电子邮件验证不起作用 FILTER_VALIDATE_EMAIL
【发布时间】:2015-11-17 14:45:09
【问题描述】:

我有以下脚本可以检查电子邮件并在它们格式正确时对其进行处理。我为此使用FILTER_VALIDATE_EMAIL 代码如下:

if(!empty($_POST['maillist'])){
    $_POST['maillist'] = 'mariatettamanti@gmail.com,
H0889@sofiaertel.com,sdfd@sfs.com,';    

$mails = explode(',',$_POST['maillist']);

foreach($mails as $mail){
if(!filter_var($mail, FILTER_VALIDATE_EMAIL)) {
 echo $emailErr = $mail." - Invalid email format<br />"; 
}else{
echo 'do job with this mail';
}

}
}

如您所见,邮件被格式化为邮件,但该功能仅将第一封邮件打印为正确的,其余的则为错误的。这是为什么呢?我错过了什么?谢谢

【问题讨论】:

标签: php


【解决方案1】:

问题在于您的电子邮件地址中的最后一个逗号。它在最后创建和清空值。为避免这种情况,请使用 isset()

if (!empty($_POST['maillist'])) {
    $_POST['maillist'] = 'H0889@sofisadatel.com,info@daddsadyomiaasdmi.com,info@hotsdaelmidasami.com,';
    $mails = explode(',', $_POST['maillist']);

    foreach ($mails as $mail) {
        if (isset($mail) && $mail != "") {// check for empty email
           if(!filter_var(trim($mail), FILTER_VALIDATE_EMAIL)) {
                echo $emailErr = $mail . " - Invalid email format<br />";
            } else {
                echo 'do job with this mail';
            }
        }
    }
}

【讨论】:

  • #Saty,奇怪,以 3 封邮件为例,它可以工作,但对于我的真实邮件列表,它不起作用.. 我开始圈了..
  • 你能把$_POST['maillist']的值贴出来!!
  • 我添加了我正在测试的样本......它包含错误和正确格式的邮件
  • #Saty 你测试了吗?
  • 检查编辑使用trim() in if(!filter_var(trim($mail), FILTER_VALIDATE_EMAIL)) { 它会给你想要的结果。
猜你喜欢
  • 2014-01-05
  • 1970-01-01
  • 2015-01-20
  • 1970-01-01
  • 2011-01-09
  • 2016-12-21
  • 2013-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多