在php中没有显示header()错误

时间:2012-11-22 08:19:47

标签: php header error-reporting

我写了一个PHP程序, 我使用session_start()header()函数,我知道在向客户端发送任何内容之前我应该​​使用此函数。没关系,但是对于测试我在使用header()之前用echo "test";向客户端发送测试消息,但我没有得到任何错误和头功能没有任何问题!

在此前的PHP早期版本中,我会收到如下消息:

Warning: Cannot modify header information - headers already sent by (output started at /some/file.php:22) in /some/file.php on line 60

我不知道为什么我没有收到任何错误消息?!

我的php版本为5.3.1,error_reporting位于E_ALL

3 个答案:

答案 0 :(得分:1)

您没有看到错误,因为
一个。输出缓冲是打开的 湾服务器会忽略你的error_reporting函数,因为否则会指示其他内容 运行phpinfo();并查看有关output bufferingerror_reporting的内容。

答案 1 :(得分:0)

这可能是因为你写入一个输出缓冲区(ob_start),它实际上没有向客户端返回任何东西,直到你显式刷新缓冲区(ob_flush或ob_end_ *)或脚本结束。

在开始编写HTTP响应的正文部分后,您无法发送标头这一事实不是PHP而是HTTP协议限制,因此这也不是特定于版本的。

许多框架(如Zend Framework)使用输出缓冲区,因此开发人员无需关心订单。

答案 2 :(得分:0)

我发现了问题, 我不使用任何FrameWork。

问题是error_reporting('E_ALL');

我在我的程序的第一个上写了这段代码,所以PHP没有返回任何错误! 我删除了这一行,我得到了错误!

这是开玩笑,因为这行告诉PHP显示所有错误! 我不知道PHP为什么不显示任何错误。