【发布时间】:2017-12-01 08:07:34
【问题描述】:
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()?
【问题讨论】:
-
通常如果我想强制重定向,我会这样做:
die(header('Location: redirect_url'));,因为重定向下面的任何编码都会被执行。服务器处理比重定向更快。 -
这取决于我猜的代码结构以及代码的访问方式。如果有人使用 curl 通过互联网访问代码,那么他们可能没有遵循重定向
-
没有必要..,但是如果你使用退出,当你重定向时下面的代码不会被执行。
-
@Nawin 是必要的。是缪斯。阅读stackoverflow.com/a/44794420/7978484。很难相信作为一名首席 PHP 开发人员并拥有 3 年以上的经验,您对此一无所知。
标签: php redirect http-headers