2013-03-05 57 views
1

當我故意從內嵌入PHP代碼PHP過濾模塊扔在一個PHP錯誤,Drupal的顯示消息The website encountered an unexpected error. Please try again later.錯誤使用PHP過濾模塊

我們喜歡發送帶有意想不到的編程錯誤,用戶錯誤處理頁面,以便它們不會在沒有我們收到通知的情況下登錄到死的錯誤頁面,所以我試圖找出如何在Drupal中攔截此頁面。我試着在Drupal中搜索這個錯誤字符串輸出的地方,沒有運氣。

Drupal究竟如何處理嵌入式php代碼中發生的錯誤,或者更直接:如何使它重定向到另一個頁面或以另一種方式捕獲錯誤?

感謝

回答

0

的特定錯誤之際,Drupal的顯式設置PHP異常處理程序自定義函數(在_drupal_bootstrap_configuration()完成)的結果。

異常處理程序本身是_drupal_exception_handler(),它調用_drupal_log_error(),這就是生成錯誤頁面的地方。

我從來沒有嘗試過,但我估計你會放棄執行hook_boot()並使用set_exception_handler()提供自己的核心Drupal函數的實現,以錯誤頁面爲主題。

這似乎有點漫長,但因爲_drupal_error_log()沒有調用任何鉤子(它可能會發生得太早)因爲我看不到任何其他的方式來做到這一點,而無需編輯核心文件。

+0

這幫助我找到錯誤信息的產生地點。謝謝。 – georgedyer 2013-03-07 15:31:18