在PHP中,I';我在第2行收到一条错误消息,上面写着未定义的索引ID addmsg?
代码正在运行,但是我仍然收到Id为“addmsg”的未定义索引在PHP中,I';我在第2行收到一条错误消息,上面写着未定义的索引ID addmsg?,php,Php,代码正在运行,但是我仍然收到Id为“addmsg”的未定义索引 在分配变量之前,需要检查isset: <?php if (isset($_GET["addmsg"])) // If the user wants to add a Message { $addmsg=$_GET["addmsg"]; } ?> 您使用$\u POST,因此字段msg永远不会在此处计算。将$\u GET['addmsg']更改为$\u POST[
在分配变量之前,需要检查isset:
<?php
if (isset($_GET["addmsg"])) // If the user wants to add a Message
{
$addmsg=$_GET["addmsg"];
}
?>
您使用$\u POST,因此字段msg永远不会在此处计算。将$\u GET['addmsg']更改为$\u POST['msg'],或者将字段msg更改为addmsg,并将表单类型更改为“GET”HTML中没有名为“addmsg”的字段。您只有一个名为“msg”。您的表单正在提交给
,因此在服务器端,$\u GET
超全局中没有索引addmsg
您应该将表单操作更改为
,正如您在问题的最后一行中所做的那样。消息的意思与它所说的完全相同。在$\u GET['addmsg']
上未设置任何内容
在这种情况下,您有两个问题。您的表单方法设置为post
。因此,您必须在$\u POST
其次,表单中必须有一个名为addmsg
的字段。表单中的字段名为msg
。因此,该值可用作$\u POST['msg']
有两个错误:
第一:
如果方法为“post”,则变量为$\u post
第二:
textarea的名称是“msg”,然后您必须执行$\u POST[“msg”]
当然,如果methos=“get”,变量是$\u get[“msg”]
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<p>Post your Message:<br />
<textarea name="msg" rows="10" cols="70" wrap></textarea><br />
<input type="submit" name="smtmsg" value="SUBMIT" /></p>
</form>
$url = $_SERVER['PHP_SELF'] ."?addmsg=1";
<?php
if (isset($_GET["addmsg"])) // If the user wants to add a Message
{
$addmsg=$_GET["addmsg"];
}
?>