我有以下代码检查帖子是否为“否”,如果它存在打印和错误,或者如果不存在则重定向。它目前每次都重定向,而不管post数组的值是否为“NO”。
if($_POST["minRequirementsForm"] == '1') {
foreach($_POST as $key => $value) {
if ($value == 'no') {
$error = 1;
} else {
header('Location: mysite.com/app-stage1.php');
}
}
//print_r($_POST);
}
答案 0 :(得分:5)
在循环后使用header
调用,然后检查$error
:
$error = false;
if($_POST["minRequirementsForm"] == '1') {
foreach($_POST as $key => $value) {
if ($value == 'no') {
$error = true;
}
}
}
if (! $error) {
header('Location: mysite.com/app-stage1.php');
}
请注意,这对变量$error
使用类型boolean
而不是整数,这更合适。
答案 1 :(得分:2)
不要像你那样使用它。只需写下:
if (in_array('no', $_POST)) { $error = true; }
if (!$error) { header('Location: mysite.com/app-stage1.php'); }
最好在php中使用已有的函数,而不是重新发明轮子。 或者使用以下内容,这更合适:
if (!array_search('no', $_POST)) { header('Location: mysite.com/app-stage1.php'); }
答案 2 :(得分:0)
由于非“无”字符串的后续值,它会重定向。它会回显错误,但由于下一个值,它会重定向。尝试退出if(no)条件,您将看到错误。