做了一個(gè)客戶(hù)的網(wǎng)站,賣(mài)拖把營(yíng)銷(xiāo)單頁(yè)面的站峭竣,發(fā)現(xiàn)下單后提示PHP Notice: undefined...?
原來(lái)是PHP.ini 配置了warning,修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE 即可向抢。
雖然可以通過(guò)設(shè)置錯(cuò)誤顯示方式來(lái)隱藏這個(gè)提示戏挡,但是這樣也有隱患区拳,就是在服務(wù)器的日志中會(huì)記錄這些提示,導(dǎo)致日志文件異常龐大藕帜!
下面是引用網(wǎng)上流行的解決方法:
首先烫罩,這個(gè)不是錯(cuò)誤,是warning洽故。所以如果服務(wù)器不能改贝攒,每個(gè)變量使用前應(yīng)當(dāng)先定義。
方法1:服務(wù)器配置修改
修改php.ini配置文件时甚,error_reporting = E_ALL & ~E_NOTICE
方法2:對(duì)變量進(jìn)行初始化隘弊,規(guī)范書(shū)寫(xiě)(比較煩瑣,因?yàn)橛写罅康淖兞浚┗氖省5€沒(méi)有找到好定義方法梨熙,望大家指教
方法3:每個(gè)文件頭部加上:error_reporting(0); 如果不行,只有打開(kāi)php.ini,找到display_errors刀诬,設(shè)置為display_errors = Off咽扇。以后任何錯(cuò)誤都不會(huì)提示。
方法4 :做判斷:isset($_GET["page"]) if-else判斷
或者加上'@'表示這行如果有錯(cuò)誤或是警告不要輸出
如:@$page=$_GET["page"]
方法5:file1.php文件把$xx變量付一個(gè)值陕壹,用post 傳遞給file2.php质欲,
如果file2.php沒(méi)有$xx的定義,而直接使用$yy=$xx; 系統(tǒng)就會(huì)報(bào)錯(cuò):"undifined variaable $xx", 如果file2.php的文件開(kāi)始用$xx="";定義糠馆,那么file1.php的$xx值就傳不過(guò)來(lái)了嘶伟!
file2.php里可以這樣
if(!isset($xx)) $xx="";
如果認(rèn)為這些方法都不太方便。你不妨這樣解決:
定義一個(gè)函數(shù):
function_get($str){? ? $val = !empty($_GET[$str]) ? $_GET[$str] : null;return$val;}
然后在用的時(shí)候又碌,直接用_get('str')代替 $_GET['str'] 就行啦~
是不是很方便九昧?