PHP中出现Notice: Undefined index: submit in解决办法(找了好久这个问题)
大家在调试程序的时候,很多网上提供的源码都会出现 Undefined variable错误,一般情况下php是不需要定义变量的,但如果服务器什么都报错的,就会
出现错误,所以服务器上都是应该屏蔽这种错误的
PHP默认配置会报这个错误,我的PHP版本是5.2.13,存在这个问题:
做个简单的说明,代码如下:
解决办法,加上这段代码:error_reporting(E_ALL & ~E_NOTICE);
<?php error_reporting(E_ALL & ~E_NOTICE); $do=$_GET['do']?$_GET['do']:'1'; require'a.php';?> <?php
下面为大家加上几个PHP中出现Notice: Undefined index: submit in解决的办法
解决办法有两个:
1: if($_POST[‘submit’]) 加一个判断条件,改为=>
if(isset($_POST[‘submit’]) && $_POST[‘submit’])
2: 在开头加上
error_reporting(E_ALL & ~E_NOTICE); // 这句话表示提示除去 E_NOTICE 之外的所有错误信息
因为post数组是个空的array,而代码中的这种方法适用于的是提交以后。
解决办法二(来源于网络)
学习在初级阶段,所以一直用Wamp的集成包,但是上次自己配置环境后,发现在post提交的时候总是出现Notice: Undefined index: submit in…..这样的报错,我找了很久,总觉得错误不是程序代码的,所以在网上查了查,原来在自己配置的5.3.3的php中php.ini文件配置的安全级别太高的缘故,所以具体办法如下:
这个和你程序没有关系,只是你把php.ini的安全级别调的太高了,这个应该是notice级别的错误(不是错误,因为程序还在运行)
修改一下php.ini,搜索error_reporting,原值为:E_ALL,把它修改成E_ALL & ~E_NOTICE就行了,记得重启apache
在补充几点PHP中出现Notice: Undefined index: submit in的问题和解决的办法
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”);
即可