天天看点

Notice:Undefined index:submit in问题

判断IF($_POST['submit']){ }报错Notice:Undefined index:submit in解决方法:

1.将条件语句改为if(isset($_POST['submit']) && $_POST['submit']).

2.修改一下php.ini,搜索error_reporting,原值为:E_ALL,把它修改成E_ALL & ~E_NOTICE就行了,然后重启apache.

PHP中error_reporting()用法详解

1 E_ERROR 致命的运行时错误。 错误无法恢复过来。脚本的执行被暂停

2 E_WARNING 非致命的运行时错误。 脚本的执行不会停止

4 E_PARSE 编译时解析错误。解析错误应该只由分析器生成

8 E_NOTICE 运行时间的通知。

16 E_CORE_ERROR 在PHP启动时的致命错误。这就好比一个在PHP核心的E_ERROR

32 E_CORE_WARNING 在PHP启动时的非致命的错误。这就好比一个在PHP核心E_WARNING警告

64 E_COMPILE_ERROR 致命的编译时错误。 这就像由Zend脚本引擎生成了一个E_ERROR

128 E_COMPILE_WARNING 非致命的编译时错误,由Zend脚本引擎生成了一个E_WARNING警告

256 E_USER_ERROR 致命的用户生成的错误。

512 E_USER_WARNING 非致命的用户生成的警告。

1024 E_USER_NOTICE 用户生成的通知。

2048 E_STRICT 运行时间的通知。

4096   E_RECOVERABLE_ERROR 捕捉致命的错误。

        8191   E_ALL来     所有的错误和警告。
        好像php默认是不开启错误的,所以你需要配置php.ini文件:           

将 display_errors = Off 改为display_errors = On

另外还要配置错误级别:将

error_reporting = E_ALL 改为:

error_reporting = E_ALL & ~E_NOTICE

应为php默认是显示所有错误的,而有些无害的提示我们不需要显示,所以设置如上!

也可以在php代码运用如下:

<?php

//禁用错误报告,也就是不显示错误

error_reporting(0);

//报告运行时错误

error_reporting(E_ERROR | E_WARNING | E_PARSE);

//报告所有错误

error_reporting(E_ALL);

?>

使用示例:

今天学习CI框架过程中遇到个问题:

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: user            

一般在默认的普通PHP文件中输出一个未定义声明的变量是不会报错误的,但在codeigniter框架下却要报错误,这对于想集成 添加 和 修改 页面于一体的”懒人”很不方便,由于是初学者开始还想怎么在代码中屏蔽这一错误提示呢.甚至用到了@,但听很多人都说@会大大降低性能….

最后突然想到,是不是codeigniter有意让这错误信息提示出来了呢,我们该如何去屏蔽掉这一类错误呢无意中搜索到了”如何让codeigniter不显示Notice信息?”,茅塞顿开.原来是入口index.php中的error_reporting(E_ALL);在作怪.只需要把它改成

  error_reporting(E_ALL ^ E_NOTICE);

就可以屏蔽掉这个错误,而不影响其他的报错.

我们在程序中可能经常看到这么一个函数

function setErrorReporting()
                {
                    //从配置文件读取当前是否为开发环境
                    if (DEV_ENV == true) {
                        ini_set("error_reprorting", "E_ALL & ~E_NOTICE");
                        ini_set("display_errors", "on");
                    } else {
                        error_reporting(E_ALL);
                        ini_set('display_errors', 'Off');
                        ini_set("log_errors" , "On");
                        ini_set('error_log', '/var/log/phperror.log');
                    }
                }           

举例说明:

在Windows环境下:原本在php4.3.0中运行正常的程序,在4.3.1中为何多处报错,大体提示为:Notice:Undefined varialbe:变量名称.

例如有如下的代码:
                         代码如下 复制代码
                        if (!$tmp_i) {
                        $tmp_i=10;
                        }           

继续阅读