为什么使用header()
重定向后执行goto $flag=1;
if($flag==1)
header("Location:page1.php");
header("Location:page2.php");
使用此代码页重定向到page2.php时, 为什么会发生
答案 0 :(得分:8)
你需要在标题调用之后添加exit;
;客户端停止加载页面后,PHP不会自动停止执行代码。
答案 1 :(得分:3)
代码应该是: -
$flag=1;
if($flag==1) {
header("Location:page1.php");
exit();
}
header("Location:page2.php");
exit();
如果您不使用“exit()
”/“die()
”结构,PHP将继续执行下一行。这是因为PHP将用户重定向到第一个提到的页面(在这种情况下是“page1.php
”),但是在执行完整页面中写入的所有语句后,内部甚至在“header()
”之后方法被执行。要停止此操作,我们需要使用“exit()
”/“die()
”构造。
希望它有所帮助。
答案 2 :(得分:2)
以下是它的工作原理:
服务器端:PHP创建一个要发送的HTML页面。如果$flag == 1
,则会将其标题更改为location:page1.php
。在每种情况中因为没有else
,它会将标题更改为location:page2.php
。
然后,该页面会发送到您的浏览器,然后重定向您。
我的建议:只需在第二个标题更改之前添加else
。
答案 3 :(得分:1)
$flag=1;
if($flag==1)
{
header("Location:page1.php");
exit();
}
header("Location:page2.php");
这应该可以防止重定向到page2.php。 记得把exit()放在必要的地方。