为什么使用重定向头()后执行转到为什么重定向后的代码执行
$flag=1;
if($flag==1)
header("Location:page1.php");
header("Location:page2.php");
时使用此代码页重定向至使page2.php, 为什么它的发生
为什么使用重定向头()后执行转到为什么重定向后的代码执行
$flag=1;
if($flag==1)
header("Location:page1.php");
header("Location:page2.php");
时使用此代码页重定向至使page2.php, 为什么它的发生
你需要把一个报头调用后的exit;
;客户端停止加载页面后,PHP不会自动停止执行代码。
的代码应该是这样的: -
$flag=1;
if($flag==1) {
header("Location:page1.php");
exit();
}
header("Location:page2.php");
exit();
如果不使用“exit()
” /“die()
”建设,PHP将继续执行下一行。这是因为PHP将用户重定向到首先提到的页面(在本例中为“page1.php
”),但是在执行完整个页面中写入的所有语句之后,甚至在执行“header()
”方法之后。要停止这一点,我们需要使用“exit()
”/“die()
”结构。
希望它有帮助。
这是它是如何工作的:
服务器端:PHP创建一个HTML页面发送。如果$flag == 1
,它将其标题更改为location:page1.php
。在每种情况下,因为没有else
,它然后将标题更改为location:page2.php
。
然后,该页面发送到您的浏览器,它重定向你。
我的建议:简单地在你的第二个标题改变之前放else
。
$flag=1;
if($flag==1)
{
header("Location:page1.php");
exit();
}
header("Location:page2.php");
这应该防止重定向到page2.php。 只记得把exit()放在必要的地方。
提供代码示例的出色工作! –
如果$ flag不等于 –
它将不起作用第二个'header()'是死代码。您需要将'exit'和第一个'header'放入一个'{}'块中。 – Floern