可能重复:
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"> </td>
<td><input name="SUBMIT" type="SUBMIT" id="ADD" value="ADD"></td>
</tr>
</table>
</form>
<?php
}
else {
//code here
}
?>
如何删除上述错误?谢谢。
答案 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"> </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)
选项:
@
符号,这将禁止该特定行的错误。isset($_POST['SUBMIT'])
。其中,第三种选择绝对是最好的选择。您不应该假设用户提供的任何变量将按预期设置;你应该总是检查它是否已设置,并且它已设置为预期值。否则你可能会受到黑客攻击。