php get或post提交表单报错Undefined index
我们经常接收表单POST过来的数据时报Undefined index错误,如下: $act=$_POST['action']; 用以上代码总是提示 Notice: Undefined index: act in D:testpost.php on line 20 另外,有时还会出现 Notice: Undefined variable: Submit ...... 等一些这样的提示 出现上面这些是PHP的提示而非报错,PHP 本身不需要事先声明变量即可直接使用,但是对未声明变量会有提示。一般作为正式的网站会把提示关掉的,甚至连错误信息也被关掉。 首先,这个不是错误,是warning。所以如果服务器不能改,每个变量使用前应当先定义。网上流行的解决方法有以下几种: 第一种方法: 如果不影响程序的正常执行,可以采用屏蔽的方法 可以在代码的第一行 加上 error_reporting(E_ALL ^ E_NOTICE); 关闭掉 NOTICE错误的警告 第二种方法: 打开php.ini文件,error_reporting设置: 找到error_reporting=E_ALL 修改为error_reporting=E_ALL & ~E_NOTICE 第三种方法: 做判断:isset($_GET["page"]) if-else判断。或者加上'@'表示这行如果有错误或是警告不要输出。如:@$page=$_GET["page"] 第四种方法: 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=""; 第五种方法: 如果你觉得上面的方法不怎么好用,也可以用下面的方法: function _get($str){ $val = !empty($_GET['str']) ? $_GET['str'] : null; return $val; } 定义这样的一个函数,然后在用的时候,直接用 _get('str') 代替 $_GET['str'] 就行啦~这样会方便些。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |