【问题标题】:Cannot POST all form fields [closed]无法发布所有表单字段[关闭]
【发布时间】:2013-05-30 15:29:20
【问题描述】:

我有一个页面,其中包含从数据库中收集的多个帖子。 每个帖子下面是一个 cmets 表单,根据主帖子的 ID 具有不同的 id 值。

这是我的表格:

<form action="post_comment.php" method="POST" id="cmtForm-8">
    <textarea name="msg" placeholder="Comment here"></textarea>
    <input type="hidden" value="8" name="id_cmt"/>
    <input type="hidden" value="username" name="usr"/>
    <input type="submit" value="Add comment"/>
</form>

这是post_comment.php

echo "ID: ".$_POST['id_cmt'];
echo "<br>Message content: ".$_POST['msg'];
echo "<br>User: ".$_POST['usr'];

这是输出(不管msg textarea 中的内容如何):

ID: 1
Message content:
User: username

var_dump($_POST) 给我:

array(3) { 
    ["msg"]=> string(0) "" 
    ["id_cmt"]=> string(1) "1" 
    ["usr"]=> string(8) "username" 
}

为什么id_cmtmsg 字段不能正确发布?

【问题讨论】:

  • 我很想知道为什么在 HTML 代码中将隐藏值设置为 8 时 $_POST['id_cmt'] 打印为 1。
  • var_dump($_POST) 显示什么?
  • msg 内容根据您发布的 HTML 正确传递(没有值)。至于id_cmt的值,你贴出来的和结果不匹配,贴出来的代码都没有说明。请包含影响该值的任何其他代码。
  • 那么页面上的其他地方显然存在问题。您是否有机会将您的整个标记粘贴到有问题的页面?而且,附带说明一下,您不应该发布用户名,任何人都可以更改此用户名并以其他任何人的身份发布。
  • 我没有在循环中看到 ,所以这可能是问题所在?第一个 ID 为 1 的表单从未关闭。

标签: php forms post


【解决方案1】:

基于http://pastebin.com/0whCYxuE中的粘贴

解决您的问题:

将以下内容添加为当前行 30

echo '</form>';

后续建议是删除第 28 行并使用 $_SESSION['user']

【讨论】:

  • 奇迹。这么小的东西……谢谢你的帮助,救命恩人。
  • 很高兴,享受你的代码:-)
猜你喜欢
  • 1970-01-01
  • 2021-09-05
  • 2015-07-27
  • 1970-01-01
  • 2016-07-08
  • 2011-08-13
  • 1970-01-01
  • 1970-01-01
  • 2016-09-18
相关资源
最近更新 更多