+ -
当前位置:首页 → 问答吧 → 该死的Notice: Undefined index:问题

该死的Notice: Undefined index:问题

时间:2011-09-17

来源:互联网

很多地方都出现了这个Notice,比较多的是还有个$_GET[]出现的
<?php
  if (is_uploaded_file($_FILES['upfile']['tmp_name'])){

  $upfile=$_FILES['upfile'];

  $name = $upfile['name'];
  $type = $upfile['type'];
  $size = $upfile['size'];
  $tmp_name = $upfile['tmp_name'];
  move_uploaded_file($tmp_name,'up/'.$name);
  }



?>
<form action="up.php" enctype="multipart/form-data" name="upform" method="post">
  <div align="center">上传文件:
  <input name="upfile" type="file">
  <input name="Submit" type="submit" value="上传">
  </div>
</form>

据说要给变量初始化,这个怎么给upfile初始化,本来就是空的啊 又还没有上传,难道就只能把Notice给屏蔽了?

作者: god_for   发布时间: 2011-09-17

着是PHP.ini设置的! 一般的开发,你在PHP.ini里面修改下就可以了,而且你上传到服务器,一般不会出现这种情况.
把error_reporting = E_ALL  
改为
error_reporting = E_ALL & ~E_NOTICE 

作者: xiexie10o   发布时间: 2011-09-17

这个仅仅是提示 不是错误.所以你可以认为的忽略这个提示.
当然如果实在不顺眼可以根据楼上的方法进行修改.不过我建议你认真的对待每一个提示进行处理其实你只需要加一个判断 isset()就可以了

作者: PhpNewnew   发布时间: 2011-09-17

加个isset() 只是屏蔽了吧。。
if (isset($upfile)){
if (is_uploaded_file($_FILES['upfile']['tmp_name'])){
$upfile=$_FILES['upfile'];

$name = $upfile['name'];
$type = $upfile['type'];
$size = $upfile['size'];
$tmp_name = $upfile['tmp_name'];
move_uploaded_file($tmp_name,'up/'.$name);
}
}
这样是没有出现notice了 但是那里面的功能也没有了,要是if(!isset($upfile))的话 还是一样出现notice

作者: god_for   发布时间: 2011-09-17

什么变量出现提示就加在什么地方进行判断,只有没有定义或者空值的变量才会出现那样的提示.
如果你加了提示 里面的功能也没有了那就说明你代码没写正确

PHP code

if (isset($_FILES['upfile']['tmp_name'])){
    if (is_uploaded_file($_FILES['upfile']['tmp_name'])){
        isset($_FILES['upfile'])?$upfile=$_FILES['upfile']:'';
        isset($upfile['name'])?$name = $upfile['name']:'';
        isset($upfile['type'])?$type = $upfile['type']:'';
        isset($upfile['size'])?$size=$upfile['size']:'';
        isset($upfile['tmp_name'])?$tmp_name = $upfile['tmp_name']:'';
        move_uploaded_file($tmp_name,'up/'.$name);
    }
}




当然你也可以用foreach 来判断 这样可以少写点代码

作者: PhpNewnew   发布时间: 2011-09-17

相关阅读 更多