PHP中未定义的索引

时间:2011-04-15 12:46:23

标签: php

  

可能重复:
  PHP: “Notice: Undefined variable” and “Notice: Undefined index”

美好的一天!

我的代码中出现以下错误:

<?php
if (!$_POST['SUBMIT']){   //ERROR: Undefined index
?>
    <H2>Add Employee</H2>
    <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="POST">
    <table width="400" border="0" cellspacing="1" cellpadding="2">
       <tr>
            <td width="100">SSN</td>
            <td><input name="SSN" type="text" id="SSN"></td>
       </tr>
       <tr>
            <td width="100">&nbsp;</td>
            <td><input name="SUBMIT" type="SUBMIT" id="ADD" value="ADD"></td>
       </tr>
    </table>
    </form>
 <?php
    }
    else {
    //code here
    }
?>

如何删除上述错误?谢谢。

4 个答案:

答案 0 :(得分:15)

应该是通知,而不是错误。

要修复,您必须检查是否设置了$_POST['submit']

if(!isset($_POST['submit'])) {
    ...
}

答案 1 :(得分:7)

这是你测试的地方,看不到那里。它应该是!isset($_POST['SUBMIT'])。这是因为索引SUBMIT不会被设置,因此传递if(...)时不会有true等值。 isset()检查索引/变量是否实际设置。

试试这个:

<?php
    if (!isset($_POST['SUBMIT'])){   //ERROR: Undefined index
?>
<H2>Add Employee</H2>
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="POST">
<table width="400" border="0" cellspacing="1" cellpadding="2">
   <tr>
        <td width="100">SSN</td>
        <td><input name="SSN" type="text" id="SSN"></td>
   </tr>
   <tr>
        <td width="100">&nbsp;</td>
        <td><input name="SUBMIT" type="SUBMIT" id="ADD" value="ADD"></td>
   </tr>
</table>
</form>
<?php
    }
    else {
    //code here
    }
?>

答案 2 :(得分:4)

<?php
  if (!isset($_POST['SUBMIT'])){   //ERROR: Undefined index
?>

如果设置了索引,则进行此测试

答案 3 :(得分:3)

选项:

  • 通过编辑PHP.ini中的设置
  • 来禁用警告消息
  • 在变量名称前添加@符号,这将禁止该特定行的错误。
  • 在进一步检查之前,将代码更改为使用isset($_POST['SUBMIT'])

其中,第三种选择绝对是最好的选择。您不应该假设用户提供的任何变量将按预期设置;你应该总是检查它是否已设置,并且它已设置为预期值。否则你可能会受到黑客攻击。