78模板网分享cms建站教程,提供网站模板、网站插件、办公模板等模板教程免费学习,找模板教程就上78模板网!

PHP运行出现Notice : Notice: Undefined index的原因及解决办法

PHP运行出现Notice : Notice: Undefined index的原因及解决办法

<span style="font-size:18px;"><?php

$u=$_GET['u'];

echo $u;

echo "<br>";

?></span>

直接运行的话会"Notice: Undefined index: u inF:wwwtest11.php on line3"的警告,但这是PHP 的提示而非报错,这里我未给$u赋予值,又把它输出,所以报错了,PHP 本身不需要事先声明变量即可直接使用,但是对未声明变量会有提示。在网站正式开始运行时,会把提示关了的

关闭 PHP 提示的方法

 1.搜索php.ini:

  error_reporting = E_ALL

  改为:

  error_reporting = E_ALL & ~E_NOTICE

 2.还有个不是办法的办法就是

  在每个文件头上加

  error_reporting(0); 虽然不好弄但是可以解决问题

<span style="font-size:18px;">

<?php

error_reporting(0);

$u=$_GET['u'];

echo $u;

echo "<br>";

//加上error_reporting(0);就不会弹出警告了

?></span>

<span style="font-size:18px;">

<?php

//禁用错误报告

error_reporting(0);

//报告除了警告以外的所有错误

error_reporting(E_ALL & ~E_NOTICE);

//报告运行时错误

error_reporting(E_ERROR | E_WARNING | E_PARSE);

//报告所有错误

error_reporting(E_ALL);

?></span>

3.foreach遍历的时候一定要判断一下

例子1:

 foreach (class_uses_recursive($class) as $trait) {

            if (method_exists($class, $method = 'boot'.class_basename($trait))) {

                forward_static_call([$class, $method]);

            }

        }

例子二:先定义这个变量。

我的代码里有这个问题,是因为表单提交时提交到当前页面,我在当前页面里判断是否是提交表单,使用代码是

if($_POST['submit'])

{

//

}

本意是如果点击了submit这个按钮,就执行里面的语言,但是这句代码的实际意思是判断$_POST['submit']值是否存在。初始运行页面时,$_POST['submit']这个值是不存在的,就提示了 Notice: Undefined index:。

正确的方法是:

if(isset($_POST['submit']))

{

//

}

isset函数检测$_POST['submit']变量是否存在,存在则表示是表单提交了。

另外,需要注意,使用方法一修改了php.ini配置文件,虽然这个提示没有出现了,代码能执行,但是还是有可能出现问题的,比如

<input type="submit" name="submit" value="0" />

如果提交按钮的value是空或者0,提交后,虽然修改了配置文件,点击提交后,post过去的值是0,判断后,还是会当做false处理,一样不会执行里面的语句。

这个虽然是个很简单的问题,自己写代码太粗心,但是出现这样的warning,最好的办法还是检查代码,而不是修改配置信息,修改配置信息,还可能导致代码本身存在的问题没有被检测出来。

本文链接:http://78moban.cn/post/8206.html

版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!

联系技术
文章删除 友链合作 技术交流群
1050177837
公众号
公众号
公众号
返回顶部