闻心阁

一蓑烟雨看苍生,半壶浊酒笑红尘

Wordpress错误 Cannot modify header information

2012-10-29 约 1 分钟读完 搬砖秘籍

今天登录网站后台,突然发现后台登录不进去了,提示错误 Cannot modify header information 细细想来自己也没做什么,应该是虚拟主机改了php的什么设置。

既然遇到问题,就去找相关解决方案了,在网上找了很多教程,后来在一个英文站发现了下面的提示:

Make sure no blank line after <?php ... ?> of the calling php script.

翻译成现代汉语就是确保在<?php ?>后面不要留空白行,我检查了一下,果然如此,去掉空白行,正常。

知其然,但是不知其所以然,在网上找了很多,可能的解释如下:

PHP脚本开始执行 时,它可以同时发送http消息头部(标题)信息和主体信息. http消息头部(来自 header() 或SetCookie() 函数)并不会立即发送,相反,它被保存到一个列表中. 这样就可以允许你修改标题信息,包括缺省的标题(例如Content-Type 标题).但是,一旦脚本发送了任何非标题的输出(例如,使用 HTML 或 print()调用),那么PHP就必须先发送完所有的Header,然后终止 HTTPheader.而后继续发送主体数据.从这时开始,任何添加或修改Header信息的试图都是不允许的,并会发送上述的错误消息之一。

但是上面的解释并不能解答我的疑惑,因为我并没有使用header()函数,也没有setcookie,希望高手路过给与解答,谢谢。