Stack Over Flow中有许多类似的问题,如php - Should I call exit() after calling Location: header?和do i need to use exit after header("Location: http://localhost/...");?。
他们有如下答案。
你绝对应该。否则脚本执行不是 终止。单独设置另一个标头不足以重定向。
-
你应该调用exit(),因为header()不会自动停止 来自执行的脚本 - 或者如果它(我老实说不是100%), 它肯定不会立即停止剧本。
但我无法理解有人跳过或绕过像header('Location: http://www.example.com/login.php')
这样的代码?怎么有人这样做?因为这是一个PHP代码。此代码在服务器中运行。如果有人可以跳过/绕过此代码,为什么他们也不能跳过/绕过exit()
?
答案 0 :(得分:3)
标题只是一行数据,要求浏览器重定向。页面的其余部分仍然由PHP提供,客户端可以通过简单地阻止执行header命令来查看。
如果你没有阻止它,即使在标题调用之后,PHP也会发送出整个身体。该机构完全可供收件人使用。