2009-12-27 44 views
5

我不知道PHP中有哪些模式可以處理錯誤?是否存在處理PHP項目中的錯誤的模式?

我接近只是使全局ErrorManager對象具有添加消息的方法。當我的整個應用程序被編譯時,任何發生的錯誤都會記錄到該ErrorManager對象。在我的Front Controller結尾處(腳本的最後幾行),我告訴ErrorManager顯示錯誤(如果有的話)。我想到的一件奇特的事情是:訪問者真的不關心技術細節。相反,他們應該會收到一個帶有大「SORRY」的錯誤頁面,並提供錯誤報告的信息。然後,ErrorManager將所有可用信息發送給管理員,並將這些內容記錄到錯誤日誌文件中。這個文件可以通過後臺看到,方便開發。

不知道這是否是一個好策略。我敢打賭你知道更好的:-)

回答

4
3

你永遠不應該讓任何訪問者看到任何技術錯誤信息。他們不需要看到它,這是一個安全缺陷。如果用戶發現sql注入,則顯示sql錯誤消息可以使他們更容易地計算出您的數據庫結構。

關於發送電子郵件,您需要非常小心,因爲管理員可能會在發生錯誤時睡着,並在他或她醒來時在其收件箱中收到20,000封電子郵件。

更好的主意是在出現錯誤時使用日誌文件或數據庫並在一小時(或一天)內發送一封電子郵件。這樣最多有12封關於錯誤的電子郵件。

+0

好點的電子郵件! – openfrog 2009-12-27 17:04:56