今天在調(diào)試程序的時候,很多網(wǎng)上提供的源碼都會出現(xiàn) Undefined variable錯誤,一般情況下php是不需要定義變量的,但如果服務(wù)器什么都報錯的,就會出現(xiàn)錯誤,所以服務(wù)器上都是應(yīng)該屏蔽這種錯誤的
PHP默認(rèn)配置會報這個錯誤,我的PHP版本是5.2.13,存在這個問題:
Notice: Undefined variable
這就是將警告在頁面上打印出來,雖然這是有利于暴露問題,但實現(xiàn)使用中會存在很多問題。
需要設(shè)置顯示錯誤級別,來解決問題。
網(wǎng)絡(luò)上的通用解決辦法是修改php.ini的配置:
解決方法:
1) error_reporting設(shè)置:
找到error_reporting = E_ALL
修改為error_reporting = E_ALL & ~E_NOTICE
2) register_globals設(shè)置:
找到register_globals = Off
修改為register_globals = On
我發(fā)現(xiàn)在php代碼中直接使用
error_reporting(E_ALL & ~E_NOTICE);
可以解決這個問題,小技巧記一下,呵呵。
以下是補充:
Notice: Undefined variable: email in D:\PHP5\ENOTE\ADDNOTE.PHP on line 9
Notice: Undefined variable: subject in D:\PHP5\ENOTE\ADDNOTE.PHP on line 9
Notice: Undefined variable: comment in D:\PHP5\ENOTE\ADDNOTE.PHP on line 9
........
其實以上就是未定義變量,我們就直接判斷變量的代碼導(dǎo)致。
本來php是不需要定義變量的,但是出現(xiàn)這種情況應(yīng)該怎么辦呢?
只要在C:\WINDOWS找出php.ini的
在php.ini中的302行 error_reporting = E_ALL
修改成
error_reporting = E_ALL & ~E_NOTICE再重啟apache2.2就行了
解決方法:修改php.ini
將: error_reporting = E_ALL
修改為:error_reporting = E_ALL & ~E_NOTICE
如果什么錯誤都不想讓顯示,直接修改:
display_errors = Off
如果你沒有php.ini的修改權(quán)限,可在php頭部加入
ini_set("error_reporting","E_ALL & ~E_NOTICE");
即可