2014-05-12 96 views
1

所以基本上我試圖設置一個錯誤報告系統,將任何PHP,HTML或任何其他錯誤記錄到位於特定目錄中的名爲'errors.txt'的文本文件中。但是,該文件沒有被創建。PHP與i'.ini'文件錯誤報告

下面是代碼:

ini_set('error_reporting', E_ALL); 
error_reporting(E_ALL); 
ini_set('log_errors',TRUE); 
ini_set('error_log','/xampp/xampp-portable-win32-1.8.3-2-VC11/xampp/htdocs/EstateAgent/logs/errors.txt'); 
ini_set('display_errors',FALSE); 

的錯誤仍然可以顯示給用戶,他們沒有被指定的目錄中創建的錯誤日誌。

我也嘗試更改我的'php.ini'文件中的標準值,如其他網站上的建議,我仍然沒有運氣。

任何幫助將不勝感激!

謝謝:)

+0

你重新啓動Apache(或任何Web服務器使用的是):登錄

此外,使用下面的? –

+0

是啊,多次嘗試這種方式仍然沒有運氣...:/ –

+0

等等,你是否使用了'ini_set()'_inside_ php.ini文件的語法?這是一個在PHP代碼中使用的運行時函數調用。在'php.ini'文件中它應該看起來像'error_reporting = E_ALL'或'log_errors = true' –

回答

0

對於任何人誰也有類似的問題 - 確保你沒有在其他文件中的任何其他的error_reporting和你的ini_set在項目中使用。在這些情況下,錯誤報告可能看起來不正常,但實際上這是錯誤的。

嘗試改變:

ini_set('log_errors',TRUE); 

ini_set('log_errors','1'); 

ini_set('display_errors',FALSE); 

ini_set('display_errors','0'); 

如果沒有幫助,在添加文件的最頂端開始:

<?php 
    error_reporting(0); 
    ini_set('display_errors','0'); 
    echo $testVariable; 
    echo "Just testing"; 
?> 

,並檢查「只是測試」之前會顯示這個變量的任何警告。

現在改變上面的代碼爲:

<?php 
    error_reporting(E_ALL); 
    ini_set('display_errors','1'); 
    echo $testVariable; 
    echo "Just testing"; 
?> 

,並檢查有關前顯示該變量ID的任何警告「只是測試」。

如上所示2樣本代碼的工作原理如下,很可能這些設置是在用戶使用的用戶或php庫的其他php文件中進行更改。您應該掃描您的代碼和庫代碼,確定是否進行了更改,並嘗試解決此問題,或者刪除代碼,更改所需報告或正確評估/設置(如果在構造函數或方法中存在此類可能性),則需要在外部庫中報告

+0

可悲的是,這也不能解決任何問題。感謝您的建議:) –

+0

嘗試將您的日誌文件更改爲簡單的ini_set('error_log','errors.txt');並看看它是否出現任何錯誤時創建 –

+0

不,它不會創建它仍然... –

0

您需要爲「error_log中的財產提供了一個FULLPATH:

<?php 
ini_set('error_log', 'c:/xampp/logs/php_error.log'); 
?> 

你需要確保以下文件夾存在並且是「可寫的」 C:/ XAMPP /日誌/

如果您使用的是Linux,那麼完整路徑將如下所示:/ xampp/logs/php_error。改變`php.ini`後

<?php 
ini_set('display_errors', '1'); 
error_reporting(E_ALL); 
ini_set('log_errors', '1'); 
?> 
+0

恐怕我已經嘗試過添加完整路徑,但仍然沒有成功,而您提供的其他'ini'代碼也無效。感謝您的建議,雖然:) –

+0

我不好,你應該設置「display_errors」爲「1」 –

+0

如果它不適用於完整路徑,那麼很可能你使用的「日誌」文件夾是不可寫的。您無權在那裏創建文件(或者Apache用戶無權在其中創建文件)。 –