我在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));
}
}
谢谢!
答案 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);
解释是因为如果脚本无论如何都不会到达邮件