PHP Post&重定向

时间:2010-11-08 15:28:10

标签: php

我有以下代码检查帖子是否为“否”,如果它存在打印和错误,或者如果不存在则重定向。它目前每次都重定向,而不管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);  
}

3 个答案:

答案 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)条件,您将看到错误。