在開發階段或搬移程式碼到另一台主機時,大家可能有遇過這樣子的問題
● 程式碼明明有打錯,為何沒有錯誤的訊息呢? (空白畫面)
如果整個畫面都是空白畫面
這時候你可以往php.ini或該支程式碼去檢察display_error是否被關閉
在開發階段,請務必開啟display_error
display_error=on
● 在自己的主機沒看到的錯誤,怎麼搬到另一台主機上會有notice、deprecated...等訊息
Notice: Undefined variable: ....
未初始化變數
例:直接使用$_POST、$_GET...等
if($_POST['xxx']=="Food"){} 就會出現Notice: Undefined variable: ....訊息
通常可以使用isset()解決 => isset($_POST['xxx'])
Notice: Undefined index: ....
不存在的index,跟上面差不多的意思
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in .......
mysql將在未來移除,改使用mysqli或pdo連線
不過以上這些錯誤,程式其實還是可以運行
通常我們會將error_reporting的錯誤層級降低來忽略
你可以在php.ini或該程式碼裡修改error_reporting,將這些提醒的訊息關掉
error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE
相關參數設定如下
E_ALL & ~E_NOTICE (顯示所有的錯誤,除了notices)
E_ALL & ~E_NOTICE & ~E_STRICT (顯示所有的錯誤,除了notices和coding standards的警告)
E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (只顯示errors)
預設值: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
開發: E_ALL (顯示所有的錯誤)
最後請記得設定完成時,重新啟動Apache
● 程式碼明明有打錯,為何沒有錯誤的訊息呢? (空白畫面)
如果整個畫面都是空白畫面
這時候你可以往php.ini或該支程式碼去檢察display_error是否被關閉
在開發階段,請務必開啟display_error
display_error=on
● 在自己的主機沒看到的錯誤,怎麼搬到另一台主機上會有notice、deprecated...等訊息
Notice: Undefined variable: ....
未初始化變數
例:直接使用$_POST、$_GET...等
if($_POST['xxx']=="Food"){} 就會出現Notice: Undefined variable: ....訊息
通常可以使用isset()解決 => isset($_POST['xxx'])
Notice: Undefined index: ....
不存在的index,跟上面差不多的意思
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in .......
mysql將在未來移除,改使用mysqli或pdo連線
不過以上這些錯誤,程式其實還是可以運行
通常我們會將error_reporting的錯誤層級降低來忽略
你可以在php.ini或該程式碼裡修改error_reporting,將這些提醒的訊息關掉
error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE
相關參數設定如下
E_ALL & ~E_NOTICE (顯示所有的錯誤,除了notices)
E_ALL & ~E_NOTICE & ~E_STRICT (顯示所有的錯誤,除了notices和coding standards的警告)
E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (只顯示errors)
預設值: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
開發: E_ALL (顯示所有的錯誤)
最後請記得設定完成時,重新啟動Apache