2012-08-08 71 views
-2

可能重复:
Headers already sent by PHPPHP头不工作

“无法修改标题信息 - 已经发送了头”

由于更新我的MacBook Pro到OS X山狮,我的本地主机网站出现故障。

我的header("Location: ./xxx.php");重定向的大多数(如果不是全部)未能正常工作。他们在狮子工作,所以我假设山狮是这个原因,而不是我的代码。如果关闭内置服务器并启用/使用MAMP,也会出现该错误。

这让我相信这是一个问题,山狮作为一个整体如何对待标题。如果这个错误实际上是我的代码,那么为什么它在Lion中工作?如果是这样,我会假设Mountain Lion以更严格的方式读取PHP代码。此外,我然后做了一个简单的test.php脚本,其头部重定向以查看一般情况下的标题是否无效。事实证明,当我在Safari中打开它时,该脚本没有任何问题重定向我。这个错误对我来说似乎很奇怪,我想要一些反馈。谢谢。

+3

发送输出后无法发送标题。错误说明全部 – 2012-08-08 19:45:51

+0

“请记住,必须在发送任何实际输出之前调用header()”http://php.net/manual/en/function.header.php – TheZ 2012-08-08 19:46:20

+0

也许您已将空格添加为第一个字符你的PHP文件不小心或类似的东西,这打破了它。 – insertusernamehere 2012-08-08 19:48:27

回答

3

Cannot modify header information - headers already sent表示数据已发送时您正试图发送标题。这是不可能的。

如果您需要调试您的应用程序,请用简单的exit;代替header('Location: ...),并检查是否有任何输出。搜索任何echoprint ...在您拨打header()之前。

+0

它的工作都建在更新到OSX ML之前切断并且在MAMP上。我一次只有一个。并且,在标题以echo/print形式重定向之前没有输出。有几个
标签w /文档类型,并且在session_start()/ sessions下方的顶部附近,但我不知道这是否足以破坏脚本。 html的东西不在PHP标签中。 – user1585762 2012-08-08 19:55:58

+0

如果您愿意,我可以发布我的登录脚本,这是我遇到此问题的脚本之一。 – user1585762 2012-08-08 20:01:56

+0

@ user1585762“几个
标签”被认为是输出。在浏览器或控制台中可见的任何内容均视为输出。 – Tchoupi 2012-08-08 20:03:33