if / else in foreach继续发送邮件

时间:2016-04-11 13:02:35

标签: php foreach

我在foreach中有一个小的if / else语句,但是当表单正常时,由于foreach,电子邮件会被发送7次..

如何检查每个表单,但只发送一次邮件?

这是代码:

foreach($required as $field) {
    if (empty($_POST[$field])) {
        echo'<script>alert("vul a.u.b. het complete formulier in")</script>';
        die(); 
    } else {
        mail($settings['email'], 'Donateur formulier website', $contents_mail, $headers);
        header("Location: ".$urlClass->buildUrl(38));
    }
}

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用标志变量:

$flagSendMail = true;

foreach($required as $field) {
  if (empty($_POST[$field])) {
    $flagSendMail = false;
  } 
}

if($flagSendMail){
  //Can send
  mail($settings['email'], 'Donateur formulier website', $contents_mail, $headers);
  header("Location: ".$urlClass->buildUrl(38));
} else {
   //Validation handling
}

答案 1 :(得分:0)

    foreach($required as $field) {
      if (empty($_POST[$field])) {
        echo'<script>alert("vul a.u.b. het complete formulier in")</script>';
        die(); 
      } else {
        header("Location: ".$urlClass->buildUrl(38));
      }
    }
    mail($settings['email'], 'Donateur formulier website', $contents_mail, $headers);

解释是因为如果脚本无论如何都不会到达邮件