2010-06-19 44 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