Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我会得到“未定义索引”?_Php_Javascript_Html_Css_Forms - Fatal编程技术网

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

Php 为什么我会得到“未定义索引”?,php,javascript,html,css,forms,Php,Javascript,Html,Css,Forms,目前,我正在开发“联系我们”表单。当我在本地主机上运行该脚本时,我的问题是什么?错误中的“名称”字段和“电子邮件”字段如下所示: (<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>Not

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

(<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代码

谁能告诉我我犯了什么错误吗?

正确的方法是:

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

下面是正确的方法:


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

你的问题不是很清楚。我假设您对此表单有一个操作,并且有一个post或get方法

从我看到的两个输入中,如果表单使用GET方法,您的值应该在$u POST变量中显示为$u POST['textfield222']和$u POST['textfield2222'],以及$u GET['textfield222']和$u GET['textfield2222']

一般来说,永远不要相信用户输入-在使用表单数据之前验证表单数据


我希望这是有用的。

你的问题不是很清楚。我假设您对此表单有一个操作,并且有一个post或get方法

从我看到的两个输入中,如果表单使用GET方法,您的值应该在$u POST变量中显示为$u POST['textfield222']和$u POST['textfield2222'],以及$u GET['textfield222']和$u GET['textfield2222']

一般来说,永远不要相信用户输入-在使用表单数据之前验证表单数据


我希望这是有用的。

虽然我完全赞成“遵守规则”,但我从不为这些通知费心,我认为在这种情况下,关闭E_通知是完全可以的。我在没有E_通知的情况下开发,如果我检查每个变量的isset,这将非常耗时!请随意不同意@kieran第一次尝试调试不是小鸡大小的应用程序会让您放心。@kieran通知可能包含有关键入错误和未初始化变量的有价值信息,因此关闭通知不是一件好事。我必须对请求变量执行此操作,但这是您所说的方式,而不是通过以下方式检查变量:如果$s{echo'test';}您执行ifasset$s&&$s{echo'test';}每次$s可能没有被定义?@kieran:这样一个蹩脚的函数会使它的bucketload短一些,以便严格遵守:函数ifnull&$var,$default{if-isset$var&&$var!==null-return$var;return$default;}$foo=ifnull$\u-GET['foo'],1;虽然我完全赞成“遵守规则”,但我从不为这些通知费心,我认为在这种情况下,关闭E_通知是完全可以的。我在没有E_通知的情况下开发,如果我检查每个变量的isset,这将非常耗时!请随意不同意@kieran第一次尝试调试不是小鸡大小的应用程序会让您放心。@kieran通知可能包含有关键入错误和未初始化变量的有价值信息,因此关闭通知不是一件好事。我必须对请求变量执行此操作,但这是您所说的方式,而不是通过以下方式检查变量:如果$s{echo'test';}您执行ifasset$s&&$s{echo'test';}每次$s可能没有被定义?@kieran:这样一个蹩脚的函数会使它的bucketload短一些,以便严格遵守:函数ifnull&$var,$default{if-isset$var&&$var!==null-return$var;return$default;}$foo=ifnull$\u-GET['foo'],1;大+1表示从不信任用户输入。答案的其余部分也很好,但哦,天哪,当我看到$\u GET或$\u POST被直接回传或更糟的情况,甚至没有被转义,更不用说被验证时,我会不寒而栗。@Spudley事实上,这句话在这种情况下没什么作用。一个大的+1表示从不信任用户输入。答案的其余部分也很好,但是,哦,天哪,当我看到$\u GET或$\u POST被直接回传或更糟,甚至没有被转义,更不用说被验证时,我会发抖。@Spudley事实上,这句话在这种情况下没有什么作用。
<?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>