顯示PHP錯誤訊息 加速偵錯(Debug)效率


在設計PHP網頁的時候常會因為小小的疏失導致整個網頁一片空白,如果沒有PHP的錯誤訊息的話,要找到問題點會變得十分困難。因此,在網頁開發階段,可以設定php.ini,讓PHP顯示出錯誤訊息,加速偵錯(Debug)的效率。

拿以下的PHP程式為例:

以上程式會使用GET的方式將參數接在網址(URL)後面傳入至PHP程式中,然後再顯示出來。而且我們預期一定會傳入arg參數。

如果有傳入arg參數,就會出現正常的畫面,如下:

顯示PHP錯誤訊息 加速偵錯(Debug)效率

如果發生未傳入arg參數等超出預期的情形,可能會導致出現不正常的畫面,如下:

顯示PHP錯誤訊息 加速偵錯(Debug)效率

網頁中,Input文字的右邊是空的。究竟arg參數是傳了空字串還是根本就沒有傳入arg參數呢?因為在此為了講解方便,是使用GET方法來傳遞參數,可以直接從網址一探究竟,但如果是使用POST方法,就不能直接看到了。

如果可以讓PHP顯示出發生錯誤訊息的行號和錯誤原因的話,就可以很輕易的解決問題。

PHP顯示錯誤訊息

只要開啟PHPdisplay_errors屬性,就可以讓PHP直接在有問題的網頁上顯示出錯誤訊息。如果要確認display_errors是否有開啟,可以使用phpinfo()函數,在PHP的詳細資料表格中,找到「display_errors」項目。

display_errors若為「Off」表示不顯示錯誤訊息。

顯示PHP錯誤訊息 加速偵錯(Debug)效率

display_errors若為「On」表示顯示錯誤訊息。

顯示PHP錯誤訊息 加速偵錯(Debug)效率

要設定display_errors屬性,可以修改PHP設定檔「php.ini」的內容,php.ini的位置可以在phpinfo()的表格中找到「Loaded Configuration File」項目來查看。接著再使用文字編輯器開啟php.ini,進行編輯即可,通常會需要root權限才可以修改php.ini的內容。以Linux Mint MATELAMP Server為例,可以使用以下指令來編輯php.ini

sudo pluma /etc/php5/apache2/php.ini

顯示PHP錯誤訊息 加速偵錯(Debug)效率

php.ini內找到「display_errors」,將其設定為「On」,如下:

display_errors = On

顯示PHP錯誤訊息 加速偵錯(Debug)效率

重啟Apache後,有問題的PHP網頁就會顯示出錯誤訊息了!

顯示PHP錯誤訊息 加速偵錯(Debug)效率

如果PHP程式不小心打錯,也會告知語法錯誤,並顯示錯誤行號。

顯示PHP錯誤訊息 加速偵錯(Debug)效率

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章