2010-05-17 37 views
1

我從PHP4移植到PHP5當函數未定義時,PHP會自動失敗?

我有這個在我的.htaccess:

php_flag display_errors on 
php_value error_reporting 2039 

其中用於顯示所有錯誤。

我仍然得到了一些錯誤,但我曾經得到一個錯誤,當我打電話沒有定義的功能,但現在它結束的地方是在和向客戶端發送了一切的錯誤並沒有什麼後。沒有錯誤信息。

這裏是什麼的phpinfo告訴我:

Directive Local Value Master Value 
display_errors On Off 
error_reporting 2039 6143 

我希望能看到我的錯誤消息故障排除的目的。

誰能告訴我什麼,我需要做什麼?謝謝!!

+0

你能展示完整的PHP腳本嗎?這可能是因爲它終止於解析錯誤,而錯誤處理程序確實沒有捕獲它。 – 2010-05-17 18:24:37

+0

error_reporting(E_ALL)在你的PHP? – Kemo 2010-05-17 18:25:24

+0

行,事實證明,我包括一個頁面,有error_reporting(!E_NOTICE);在它的頂部,(但我目前的頁面沒有說這個,只是包含的頁面)。我現在明白爲什麼這會阻止我的錯誤無法顯示,但我覺得很好奇的是爲什麼這只是開始,現在是一個問題,我搬到了PHP5,從來沒有造成問題,當我在PHP4 – 2010-05-17 18:47:54

回答

5

如果一切都失敗了,只是把這個代碼在你(每個/)開頭的腳本:

error_reporting(E_ALL); 
ini_set('display_errors', 1); 
+0

我*想*我知道這個人! :D Willkommen,改變。 ICH HAB IM Postausgang NOCH EINE郵件的荻MIT數字高程模型蒂普,MAL票數reinzuschauen ... – 2010-05-17 18:25:19

+0

@Pekka:這是非常個人化的和外來語:) – Sarfraz 2010-05-17 18:29:09

+0

@Sarfraz只是這一次:)他是我的一個同事和隊友我是誰我一直有意在這裏邀請很長時間(但現在獨立於此,最終在這裏結束)。 – 2010-05-17 18:30:19

1

這將顯示所有的消息你:

ini_set('display_errors', true); 
error_reporting(E_ALL); 
1

我猜您的PHP 5版本是> = PHP 5.2.0並且原始錯誤報告級別爲E_ALL & ~E_NOTICE(或E_ALL^E_NOTICE,兩者都具有相同的結果)。

在此之前PHP 5.2.0 E_ALL過的2047的值,所以你的錯誤水平爲2039由於不包括(的8)的E_NOTICE水平。從PHP 5.2.0 E_ALL更改爲6143(以及從PHP 5.3.0至30719),這意味着E_ALL & ~E_NOTICE不再是2039,而是6135(或PHP3.3中的30711)。

至於不顯示錯誤(調用一個未定義的功能應該是一個致命的錯誤!),看到其他的答案。

+0

所以基本上,它看起來像我將永遠需要我的錯誤級別爲Max-8。我想知道是否有方法在.htaccess中表達這一點 – 2010-05-17 18:57:43