0

代码正在运行,但是我仍然收到 ID 为“addmsg”的未定义索引

     <?php
     $addmsg=$_GET["addmsg"];
     if (isset($addmsg)) // If the user wants to add a Message
     { 
     ?>

这是 textarea 和提交按钮的代码:

    <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>

最后,这段代码是连接Mysql数据库

    $url = $_SERVER['PHP_SELF'] ."?addmsg=1";
4

5 回答 5

2

您需要在分配变量之前检查 isset:

<?php

     if (isset($_GET["addmsg"])) // If the user wants to add a Message
     { 
          $addmsg=$_GET["addmsg"];
     }
?>

您使用 $_POST 所以字段 msg 永远不会在这里评估。将 $_GET['addmsg'] 更改为 $_POST['msg'] 或将字段 msg 更改为 addmsg 并将表单类型更改为“get”

于 2012-11-30T19:58:39.140 回答
0

该消息的含义正是它所说的。没有任何设置$_GET['addmsg']

在这种情况下,您有两个问题。您的表单方法设置为post. 因此,您必须在$_POST

其次,您必须addmsg在表单中实际命名一个字段。表单中的字段名为msg。所以这个值可以作为$_POST['msg']

于 2012-11-30T19:59:44.707 回答
0

有2个错误:

第一的:

如果方法是“post”,则变量是 $_POST。

第二:

textarea 的名字是"msg",然后你必须做$_POST["msg"]。

当然,如果methos="get",变量是$_GET["msg"]

于 2012-11-30T20:01:11.087 回答
0

您的 HTML 中没有名为“addmsg”的字段。您拥有的唯一一个名为“msg”。

于 2012-11-30T19:58:47.553 回答
0

您的表单正在提交到,因此在您的服务器端,超全局中<?php echo $_SERVER['PHP_SELF'];?>没有索引。addmsg$_GET

您应该将表单操作更改<?php echo $_SERVER['PHP_SELF'] . "?addmsg=1";?>为问题最后一行中的操作。

于 2012-11-30T19:58:50.487 回答