2017-07-29 67 views
0

有沒有一種方法可以迴應在通過json執行腳本期間發生的語法錯誤和其他php錯誤?通過json回聲php錯誤

假設我有一個通過JQuery ajax提交數據的登錄表單。通過post方法。

在我的php文件中,我得到了像$_POST['username']; $_POST['password'];這樣的值。 然後檢查詳細信息是否正確,並在詳細信息錯誤時回顯json編碼的成功消息或錯誤消息。 到那時,一切正常。

現在,如果我有一個語法錯誤或任何形式從PHP錯誤的說我沒有正確地包括在其收集路徑所需的文件我沒有得到任何warning :fatal error:,如果沒有,我會得到顯示我的網頁上使用json將數據發回我的頁面。 這使得調試變得困難。 我試圖使用try{//code}catch (EXEPTION $e),然後將$e->message();作爲json編碼消息的一部分返回到我的頁面,但它仍然無法回顯錯誤。 有人可以幫我解決這個問題嗎?

+0

[檢測PHP json中的壞json數據\ _decode()?](https://stackoverflow.com/questions/2348152/detect-bad-json-data-in-php-json-decode) – Ryosaku

+0

我看着這個問題,它不解決我的問題..我需要回聲語法錯誤,警告和致命錯誤 –

+0

當你的開發服務器是在Linux上,只需運行'tail -f/var/log/httpd/error_log'或'tail -f/var/log/apache2/error_log'在一個單獨的窗口中。爲您節省了編寫所有這些額外代碼的麻煩,以便爲每個AJAX調用提供錯誤報告 –

回答

0

不是試圖將PHP錯誤記錄到JavaScript並在那裏輸出,而是更容易觀察錯誤日誌。您可以在單獨的窗口中打開它,並自動輸出任何附加到日誌文件的新錯誤。

在Linux或Mac打開一個終端,運行

tail -f /var/log/apache2/error.log 
// Or 
tail -f /var/log/httpd/error_log 
// Depending on your installation, error log may be in a different location 

在Windows中,打開PowerShell中(包含在Windows默認設置),然後運行

Get-Content C:\Path\To\error.log -Last 10 -Wait 
// Location of the log-file is highly dependent on the used installation 

注意,在生產環境中,你鼓勵隱藏所有PHP錯誤信息到瀏覽器(只有error.log,至多告訴你的訪問者'糟糕,出了問題'),所以編寫這個額外的代碼來處理錯誤將僅僅是爲了的發展。