为什么我会得到“未定义的索引”?

时间:2011-01-07 12:31:20

标签: php javascript html css forms

目前我正在开发联系我们,当我在localhost上运行该脚本时,我的问题是什么,错误中的名称字段和电子邮件字段如下所示:

(<br /><b>Notice</b>:  Undefined index: name in <b>E:\wamp\www\rrr\btech\index.php</b> on line <b>49</b><br />)
(<br /><b>Notice</b>:  Undefined index: email in <b>E:\wamp\www\rrr\btech\index.php</b> on line <b>49</b><br />)

单击提交后,响应将是未定义的语法错误。

<tr>
<td valign="bottom"><span class="contactus-txt">
  <input name="textfield222" type="text" class="contact-field" style="width:125px;"   value="<?php echo $_GET['name'];?>" />
</span></td>
<td valign="bottom"><span class="contactus-txt">
  <input name="textfield2222" type="text" class="contact-field" style="width:125px;"  value="<?php echo $_GET['Email-Id'];?>"/>
</span></td>
</tr>

我使用了那个HTML代码。

任何人都可以告诉我我犯了什么错误吗?

2 个答案:

答案 0 :(得分:7)

这是正确方式:

<?php
$FORM['name'] = "";
$FORM['Email-Id'] = "";
if (isset($_GET['name'])) $FORM['name'] = htmlspecialchars($_GET['name']);
if (isset($_GET['Email-Id'])) $FORM['Email-Id'] = htmlspecialchars($_GET['Email-Id']);
?>
<tr>
<td valign="bottom"><span class="contactus-txt">
  <input name="textfield222" type="text" class="contact-field" style="width:125px;"   value="<?php echo $FORM['name'];?>" />
</span></td>
<td valign="bottom"><span class="contactus-txt">
  <input name="textfield2222" type="text" class="contact-field" style="width:125px;"  value="<?php echo $FORM['Email-Id'];?>"/>
</span></td>

所有变量都应在使用前初始化。

答案 1 :(得分:4)

你的问题并不是那么清楚。我假设您对此表单以及post或get方法有一个操作?

从我可以看到的两个输入中,你的值应该出现在$ _POST变量中作为$ _POST ['textfield222']和$ _POST ['textfield2222']用于post方法和$ _GET ['textfield222']和$如果表单使用get方法,则_GET ['textfield2222']。

作为一般规则,永远不要信任用户输入 - 在使用之前验证表单数据。

我希望这是有用的。