解決PHP錯誤顯示問題的方法
P粉469090753
P粉469090753 2023-08-20 11:45:59
0
2
585
<p>我已经检查了我的PHP ini文件(<code>php.ini</code>),并且<code>display_errors</code>已经设置,错误报告也是<code>E_ALL</code>。我已经重新启动了我的Apache web服务器。</p> <p>我甚至将这些行放在我的脚本顶部,但它甚至不能捕获简单的解析错误。例如,我用<code>"$"</code>声明变量,但我没有关闭语句<code>";"</code>。但是所有的脚本在这些错误上都显示一个空白页面,但我希望实际上在浏览器输出中看到<strong>错误</strong>。</p> <pre class="brush:php;toolbar:false;">error_reporting(E_ALL); ini_set('display_errors', 1);</pre> <p>还有什么需要做的吗?</p>
P粉469090753
P粉469090753

全部回覆(2)
P粉604507867

您無法在啟用運行時錯誤輸出的相同文件中捕獲解析錯誤,因為它在實際執行任何內容之前對文件進行解析(並且由於在此過程中遇到錯誤,它不會執行任何內容)。您需要更改實際的伺服器配置,以便打開display_errors並使用適當的error_reporting等級。如果您無法存取php.ini,您可能可以使用.htaccess或類似的方法,這取決於伺服器。

此問題可能提供額外的資訊。

P粉691461301

開發環境

這對我總是有效:

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

然而,這並不能讓PHP顯示在同一文件中發生的解析錯誤 - 顯示這些錯誤的唯一方法是修改你的php.ini文件,加入這一行:

display_errors = on

(如果你無法存取php.ini,那麼將這一行放在.htaccess中也可能有效):

php_flag display_errors 1

生產環境

請注意,上述建議僅適用於開發環境。在生產環境中,必須將其設定為:

display_errors = off
log_errors = on

然後你就能在錯誤日誌中看到所有的錯誤。請參閱在哪裡找到PHP錯誤日誌

AJAX呼叫

對於AJAX調用,在開發伺服器上開啟DevTools(F12),然後選擇Network選項卡。 然後發起你想要查看結果的請求,它將出現在Network選項卡中。點擊它,然後選擇Response選項卡。在那裡你將看到確切的輸出。
而在生產伺服器上,同樣只需檢查錯誤日誌。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板