首頁  >  文章  >  後端開發  >  一起了解Undefined index得解決方法(精選)

一起了解Undefined index得解決方法(精選)

慕斯
慕斯轉載
2021-06-03 11:55:5721631瀏覽

學了那麼久的php,今天我們就來了解關於PHP提示Notice: Undefined index解決方法,可能你還不了解什麼意思,但是我相信當你看完這篇文章,你一定會有新的收穫!

一起了解Undefined index得解決方法(精選)php提示Notice: Undefined index問題,Undefined index:是指你的程式碼裡存在:「變數還未定義、賦值就使用」的錯誤,這個不是致命錯誤,不會讓你的php程式碼執行強行中止,但是有潛在的出問題的危險…

在讀取資料時出現:

Notice: Undefined index: name in …

#Notice: Undefined index: key in…

原始碼如下:

name = isset ( name = isset(name=isset(_POST[‘name’]) ? filter_input(INPUT_POST, ‘name’, FILTER_SANITIZE_SPECIAL_CHARS) :htmlspecialchars($_GET[‘name’]);
key = isset ( key = isset(key=isset(_POST[‘key’]) ? filter_input(INPUT_POST,‘key’,FILTER_SANITIZE_SPECIAL_CHARS) :htmlspecialchars($_GET[‘key’]);

問題分析:

##Undefined index:是指你的程式碼裡面存在:「變數還未定義、賦值就使用」的錯誤,這個不是致命錯誤,不會讓你的php程式碼運行強行中止,但是有潛在的出問題的危險,因此建議修改~~~~

解決方法:

用php.ini中error_reporting = E_ALL & ~E_NOTICE 可以關閉notice的顯示,屏蔽掉此類警告好,不過,建議還是改代碼更好一點,程式碼總是寫的規範一點好,將來可以少出問題。

問題原因:是因為你只檢查P O S T 是 否 存 在 , 卻 沒 檢 查 _POST是否存在,卻沒檢查POST是否存在,卻沒檢查_GET的存在 。

完美的解決方法:修改為下面所示即可:

n a m e = i s s e t ( name = isset(name=isset(_POST[‘name’]) ? filter_input(INPUT_POST,‘name’,FILTER_SANITIZE_SPECIAL_CHARS) : isset($_GET[‘name’]) ? filter_input(INPUT_POST,‘name’,FILTER_SANITIZE_SPECIAL_CHARS) : ‘’;
k e y = i s s e t ( key = isset(key=isset(_POST[‘key’]) ? filter_input(INPUT_POST,‘key’,FILTER_SANITIZE_SPECIAL_CHARS) : isset($_GET[‘key’]) ? filter_input(INPUT_POST,‘key’,FILTER_SANITIZE_SPECIAL_CHARS) : ‘’;

#首先,這個不是錯誤,是warning。所以如果伺服器不能改,每個變數使用前都應該先定義。

方法1:伺服器設定修改


修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE

方法2:對變數進行初始化,規範書寫(比較煩瑣,因為有大量的變數)。但還沒找到好定義方法,望大家指教
方法3:

每个文件头部加上:error_reporting(0); 如果不行,只有打开php.ini,找到display_errors,设置为display_errors = Off

以後任何錯誤都不會提示。

方法4 :

做判断:isset($_GET["page"])      if-else判断

或加上''@''表示這行如果有錯誤或是警告不要輸出

如:@$page=$_GET["page" ]
方法5:

file1.php文件把$xx变量付一个值,用post传递给file2.php,

如果file2.php沒有$xx的定義,而直接使用$yy=$xx; 系統就會報錯:"undifined variaable $xx", 如果file2.php的檔案開始用$xx="";定義,那麼file1.php的$xx值就傳不過來了!


file2.php里可以这样
if(!isset($xx)) $xx="";

推薦學習:《

PHP影片教學

以上是一起了解Undefined index得解決方法(精選)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除