情景1:
<?php
header('Location: accessdenied');
//code to delete your entire database below
?>
情景2:
<?php
header('Location: accessdenied');
die();
//code to delete your entire database below
?>
假设我想知道标题是否有可能失败?
让我们说你有一些代码,你从来没有想要被执行,你遗漏了一个死();是否有可能以任何方式执行场景1中的代码。
场景2我知道以下代码永远不会被执行。
但我的问题是,情景1也是如此吗?
谢谢:)
P.S。我知道很少有这种情况会让人感到高兴(因为你可以使用if语句等等,但假设我想知道标题是否无法工作然后导致下面的代码执行?
答案 0 :(得分:9)
header()
在输出中附加一个标题。它不会停止在其所属的文件中执行代码。调用header()
后的任何代码仍然会运行,即使它是重定向。浏览器仍将重定向,但代码仍将在服务器上运行。
答案 1 :(得分:0)
始终建议在任何标头重定向后使用exit()或die()。否则有可能执行不必要的代码。 exit()或die()确保在服务器中停止代码执行。
答案 2 :(得分:0)
你需要确保在header函数之后使用exit()或die(),你的场景#1将会失败
http://php.net/manual/en/function.header.php
header("Location: http://www.example.com/");/* Redirect browser */
/* Make sure that code below does not get executed when we redirect. */
exit;