php提示Notice: Undefined index解决方法

news/2024/7/3 10:48:46

php提示Notice: Undefined index解决方法
php提示Notice: Undefined index问题,Undefined index:是指你的代码里存在:“变量还未定义、赋值就使用”的错误,这个不是致命错误,不会让你的php代码运行强行中止,但是有潜在的出问题的危险…

在读数据时出现:

Notice: Undefined index: name in …

Notice: Undefined index: key in…

源码如下:

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

k e y = i s s e t ( 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="";12345678910111213141516171819202122

==========================

  1. List item


http://www.niftyadmin.cn/n/2458204.html

相关文章

安装GoAccess 进行网站日志实时分析

为什么80%的码农都做不了架构师?>>> 系统centos 6.8 1、先安装依赖 yum install ncurses-devel geoip-devel 2、wget http://tar.goaccess.io/goaccess-1.2.tar.gz 3、tar -xzvf goaccess-1.2.tar.gz 4、cd /usr/local/goaccess-1.2/ 5、 ./config…

jquery使用serialize()出现中文乱码怎么办

原因【.serialize()】自动调用了encodeURIComponent方法将数据编码了,jquery使用serialize()出现中文乱码的解决办法:调用【decodeURIComponent(XXX,true);】将数据解码。 本教程操作环境:windows7系统、jquery3.2.1版本,该方法适…

记一次crontab中date命令错用导致的问题

问题 我在crontab中添加一条定时任务如下,用于每天把旧日志移到指定目录: 1 0 0 * * * cd /home/vg/odp/log && mv *date -d "-10 day" "%Y%m%d"* archives 然后这个定时任务似乎没有生效。单独执行后面的命令都是成功的…

python入门(八) -- 函数

2019独角兽企业重金招聘Python工程师标准>>> 函数类似于Java中的方法,是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 1、函数定义 函数定义的规则: def 函数名(参数列表&#x…

八年数据库转型之路:技术易改,匠心永存

作者介绍 吴虞,SQL专家云团队成员,擅长解决SQL Server数据库性能、高可用、负载均衡等问题。 时间过得很快,从在博客上写第一篇文章到现在刚好一年,而自己在数据库这条路上已经走过八年。回想下这八年,感觉总是在“迷茫…

layui数据表格url是什么

layui数据表格url是数据接口,用来接收数据的,其中LayUI数据表格URL默认为Get请求,语句格式如“URL:sypaysrhlist.aspx?action...”。 本教程操作环境:Windows7系统、layui2.4版,该方法适用于所有品牌电脑。 推荐&…

python3 数组(列表)初始化

python3 数组(列表)初始化 1. 初始化一个定长的数组 有时需要预定义一个定长的数组,并给每个元素赋值 方法1: python3中代码如下: 1 2 3 4 #codingutf-8 item PythonTab array [item for v in range(10)] #把 item 的值赋给 range()迭…

百度编辑器去除一些无用标签方法

1、去掉每个li的中加<p></p>的方法&#xff1a; 直接搜索 //进入编辑器的li要套p标签 注释以下代码&#xff1a; //进入编辑器的li要套p标签me.addInputRule(function(root){//utils.each(root.getNodesByTagName(li),function(li){// var tmpP UE.uNode.creat…