我正在对表单进行一些垃圾邮件检查。下面的代码在我的localhost上运行(如果为true,则重定向到google.com),但是,它不在生产服务器上时执行(执行脚本的其余部分并且不会重定向到Google.com)。 / p>
if('POST' == $_SERVER['REQUEST_METHOD']) {
if ($_POST["bait"]!='' || $_POST["date"] == "12/31/69" || trim($_POST["date"] == "1969-12-31")) {
header("location: http://www.google.com");
} else {
//Process form here
我在var_dump
上完成了$_POST
,它是1969-12-31
我做错了什么?
答案 0 :(得分:4)
发送位置标头后,您应该exit;
以防止脚本的其余部分执行。
e.g。
if('POST' == $_SERVER['REQUEST_METHOD']) {
if ($_POST["bait"]!='' || $_POST["date"] == "12/31/69" || trim($_POST["date"] == "1969-12-31")) {
header("location: http://www.google.com");
exit;
} else {
// process form here
}
}
重定向已发送,但您还会继续输出请求的其余部分,在这种情况下,行为可能未定义。