在PHP中,I';我在第2行收到一条错误消息,上面写着未定义的索引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[

代码正在运行,但是我仍然收到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['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"];
     }
?>