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 了。