我有一个简单的foreach语句从提交的表单中获取所有字段。然后将这些字段放入通过电子邮件发送的表中。我需要提交和验证3个字段,但不会随电子邮件一起发送。这是生成表格的脚本:
foreach($_POST as $name => $value) {
if($name !== "num1" || $name !== "num2" || $name !== "captcha") {
$text .= "<tr><td>$name</td><td>";
//if form field is array
if(is_array($value)) {
foreach($value as $symptom) {
$text .= $symptom . ", ";
}
//else no array
} else {
$text .= $value;
}
$text .= "</td></tr>";
}
}
基本上所有表单字段名称都设置为$name
,所有值都设置为$value
。我想要包含除名为num1
,num2
和&amp;之外的所有字段。 captcha
。
我没有重做处理此表单的方式,我只需要从表中排除这3个字段,但我的条件语句没有按照我的预期进行。如何确保这三个字段不会包含在电子邮件中?
答案 0 :(得分:1)
更改if($name !== "num1" || $name !== "num2" || $name !== "captcha")
到if($name !== "num1" && $name !== "num2" && $name !== "captcha")
答案 1 :(得分:0)
将||
中的if()
更改为&&
。你所写的if()总是会成功,因为你所测试的任何值都将同时“不是”任何这些值。
答案 2 :(得分:0)
PHP的continue
将跳过循环的迭代,然后您更改为使用==
比较运算符...试试这个:
if($name == "num1" || $name == "num2" || $name == "captcha")
continue;
else {
// rest of your code
}
答案 3 :(得分:0)
你应该使用&amp;&amp;而不是||在if语句中。