2010-06-19 39 views
8

this question OP提到PHP在error_reporting关闭时会自动抛出500错误,并且XDebug会改变该行为。PHP发布500错误 - 这是在哪里记录?

这让我很好奇,因为我从来没有听说过PHP自动发射500次之前。根据SO和其他地方的各种引用和回答,如果display_errors设置为false,那么似乎确实是PHP的默认行为,即抛出500 Internal Server Error标头。

但是,我无法找到任何官方对此。关于display_errorserror_reporting的手册页说不了什么。

有没有人知道在PHP文档谈论这个很好的来源?

回答

9

不知道,但是这可能是added in PHP 5.2.4

  • 更改错误处理程序发送HTTP 500,而不是空白页上的PHP错误。 (德米特里·安德烈Nigmatulin)

还有对internals list这个讨论可能有关:

报价:

当前时间大多数PHP instalations使用设置'display_error = 0'。 此设置隐藏了来自用户的错误,但可能仅向他发送空白页面。

建议的修补程序发送HTTP 500错误响应而不是空白页。 已经写入内容的页面不受影响。

是否有异议或增加?

和建议的解决方案/补丁似乎在这里显示:

+0

良好的渔获,谢谢!这似乎是它。然后这是一个不好记录的新功能,因为它似乎没有票。 – 2010-06-19 12:15:26

+0

应该注意(并通知补丁作者),严格地说空白页是空白页,无论状态码如何,因为页面在正文中,而响应代码在标题中。考虑到大多数浏览器不通知状态代码的用户,这一点更为重要。预计响应机构告诉他们这一点。 – amn 2010-06-19 12:57:23