PHP默認配置會報這個錯誤,我的PHP版本是5.2.13,存在這個問題:
Notice: Undefined variable
這就是將警告在頁面上打印出來,雖然這是有利於暴露問題,但實現使用中會存在很多問題。
需要設置顯示錯誤級別,來解決問題。
網絡上的通用解決辦法是修改php.ini的配置:
解決方法:
1) error_reporting設置:
找到error_reporting = E_ALL
修改為error_reporting = E_ALL & ~E_NOTICE
2) register_globals設置:
找到register_globals = Off
修改為register_globals = On
我發現在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
........
其實以上就是未定義變量,我們就直接判斷變量的代碼導致。
本來php是不需要定義變量的,但是出現這種情況應該怎麼辦呢?
只要在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的修改權限,可在php頭部加入
ini_set("error_reporting","E_ALL & ~E_NOTICE");
即可
我們知道在 php 中,變量通常是不需要定義直接使用的,但有的時候因為 php 環境的問題會出現各種各樣奇奇怪怪的事情,今天在調試程序的時候直接提示 Notice: Undefined variable 的錯誤,這是因為有的變量沒有定義造成的,也是暈了,好吧,這種問題直接一句屏蔽誤句就搞定了。
直接在程序的最頂端插入一句 error_reporting(0); 相信就不會再暴露這樣的問題了,也不耽誤程序的運行,當然這個只是應急的方法,我們還是要好好檢查程序哪裡出現的問題,然後對症下藥,對於直接屏蔽問題夏日博客再總結幾種方法吧。
php.ini 配置文件中的修改
在php.ini中的302行 error_reporting = E_ALL 修改成 error_reporting = E_ALL & ~E_NOTICE再重啟apache2.2就行了,如果什麼錯誤都不想讓顯示,直接修改:display_errors = Off
php文件中的修改
如果你沒有php.ini的修改權限,可在php頭部加入 ini_set("error_reporting","E_ALL & ~E_NOTICE"); 或者 error_reporting(0);//xiariboke.com 即可。
一般情況下直接建議在 php 文件中進行添加,這種方法簡單,不用去修改服務端的 php.ini 了。