PHP这是标题位置的最佳实践

时间:2014-06-02 11:14:35

标签: php redirect http-headers

我在使用PHP header location时感到困惑。哪种方式是最佳做法......?

if(true){
    header("location:somepage.php");
}

if(true){
    header("location:somepage.php");
    exit;
}  

7 个答案:

答案 0 :(得分:3)

发送`Location:'标题后,PHP 继续解析,并且仍然会执行header()调用之下的所有代码。所以请改用第二个例子:

if(true){
       header("location:somepage.php");
       exit;
  }

答案 1 :(得分:1)

在发送初始标题后将继续发送标题 - 所以,如果你真的,真的是这样 - 你可以用exit;结束脚本。

然而,问题是您可能仍希望在用户重定向到另一个页面后执行脚本 - 因此您实际上并不想放入exit;

好代码示例:

header("location:somepage.php");
//continue code and do stuff.

错误代码示例:

header("location:somepage.php");
// Continue code and do other stuff... then...
header("location:somepageOtherPage.php");
// This is the header that the user will get.

答案 2 :(得分:0)

我绝对会选择第二种选择。否则,脚本执行不会终止。单独设置另一个标头不足以重定向。

答案 3 :(得分:0)

这取决于你想做什么: 如果您希望在更改标题后仍然运行其余脚本 - 请使用第一个选项(不使用exit())。 如果(更有可能)您不希望脚本继续 - 使用第二个选项(使用exit())

答案 4 :(得分:0)

我认为如果你不使用"退出"您的脚本的其余部分将在重定向之前执行。

答案 5 :(得分:0)

带有exit()语句的

header()是一个很好的做法。如果你不写exit(),它将在重定向导致问题后执行一些语句。 exit()将停止所有进一步的执行。

header("location:somepage.php");
exit;

答案 6 :(得分:0)

第二个是正确的,因为页面会自动重定向到您在标题语法中指定的页面。因此不需要退出。