2011-09-27 60 views
0

所以 - 奇怪的情況我到了這裏。error_reporting(0)拋出500錯誤

聲明error_reporting(0);一直給我一個服務器500錯誤。

然而,error_reporting(1);作品就好了..

而且其殺死我,太多警告我的一些URL驗證器。這是怎麼回事?任何想法如何解決這個問題?

+1

修復警告? – Maerlyn

+1

如果你得到一個500,看看通常包含細節的web服務器'error.log'。 – mario

回答

2

首先,如果我表現出「smartass」,我很抱歉,但我必須告訴你,如果有警告,你應該考慮修復它們,而不是將它們降低到沉默 ...: )

垃圾 PHP代碼讓不好的事情發生,你不會喜歡它。據我所知,80%左右的PHP代碼都是垃圾,但真正嘗試修復該庫,如果它不是很大。

然而,我們可以嘗試解決這個問題,如果你只是做一個簡單的PHP文件,只有一行:

<?php 
error_reporting(0); 
?> 

和測試,如果它觸發錯誤。如果沒有,問題不是由error_reporting造成的,而是由它引發的,並且其他地方還有一些病態的東西正在發生。 :)

+0

哈哈,不要擔心smartass答案也會帶來好的結果:)我錯誤報告背後的原因是, m使用if(simplexml_load_string($ result))檢查RSS提要是否有效 - 如果有錯誤,它將返回false。但是,儘管它在XML中遇到錯誤,但它也會提供有關這些錯誤的警告。所以我試圖壓制這些 – Atticus

+0

呃我看到了...所以告訴我們使用單行php文件會發生什麼。順便說一下:你可以使用錯誤處理程序來處理你使用垃圾代碼的部分,而不是整個腳本。請參閱'set_error_handler' – gd1

+0

單線程工作,但是它不能與我的代碼結合使用。不過,我在一些文檔中找到了一種方法,可以防止我正在嘗試執行的錯誤輸出。感謝您的提示! – Atticus

2

嘗試error_reporting(E_ALL);和ini_set(「display_errors」,「On」);並檢查發生的錯誤。解決這些問題後,應該不會有任何問題。

祝你好運
Shai。

P.S.我會幾乎100%猜測你使用Chrome,因爲由於某些原因,Chrome有時會顯示自己的錯誤屏幕而不是顯示錯誤消息。所以也請嘗試另一個瀏覽器來檢查錯誤。

+0

非常好的建議 – gd1

+2

有趣的是,我一直在鉻,併發生通知我不斷得到500錯誤,而不是PHP的。謝謝Shai! – Atticus

+0

沒問題,請確保您將我的答案標記爲選定的答案,如果您覺得它對您有價值;-) –

1

error_reporting()的值是用常量定義的,所以不要用直接值來設置它。

如果您使用過常量,您會注意到它們都沒有0值。

如果你想報告所有的錯誤,有一個例外:使用值-1:

error_reporting(-1); 

來源:http://us.php.net/manual/en/function.error-reporting.php

,並考慮固定所有的警告! (甚至在可能的情況下通知)

注意:-1值用於確保即使添加了更多錯誤代碼,它們也都包含在內。

+0

'error_reporting(0)',這是提問者正在談論的東西,保證工作,因爲'E_NONE'等於0 - 它甚至在文檔中作爲示例給出。然而,+1,使用文字常量而不是裸數字是個好習慣。 – gd1

相關問題