为评论离开系统建立“帖子ID”值

时间:2010-08-06 21:36:51

标签: php html comments

我正在尝试将数字“post ID”值附加到注释中,以便可以从数据库中检索它们并显示在适当的位置。如何在我的html表单中建立这个数值,将其发送到将其插入数据库的脚本?我假设我需要使用GET或POST,但我不明白如何使用它们发送除用户输入的文本之外的任何内容。

这是我用来发送“名称”和“评论”输入的表单:

 <div class="comments">
 <form action="foxpost.php" method="post">

 <label for="name">Name</label><br>
 <input id="name" name="name" type="text" /><br>
 <label for="message">Comment</label><br>
 <textarea class="message" id="message" name="message"></textarea><br><br>

 <input type="Submit" value="Post Comment" />
 </form>
 </div>

4 个答案:

答案 0 :(得分:2)

由于您使用PHP标记了此问题,我猜这是您用于后端的语言。我正在做的另一个假设是你实际使用postID格式化你的请求查询字符串,比如“http://example.com/posts.php?postID=1212”,注意查询字符串中的postID,你只需传递它,就像这样:

 <div class="comments">
 <form action="foxpost.php?postID=<%= $_GET['postID'] %>" method="post">

 <label for="name">Name</label><br>
 <input id="name" name="name" type="text" /><br>
 <label for="message">Comment</label><br>
 <textarea class="message" id="message" name="message"></textarea><br><br>

 <input type="Submit" value="Post Comment" />
 </form>
 </div>

使用

<%= $_GET['postID'] %>

将简单地将查询字符串中的postID直接回显到HTML中,或者您可以将其分配给变量。

答案 1 :(得分:1)

如果您使用的是mysql,则无需创建它,当您插入新帖子时,mysql可以自动创建它。

例如,我们可以创建一个表

CREATE TABLE `student` ( 
`student_id` INT( 3 ) NOT NULL AUTO_INCREMENT, 
`name` VARCHAR( 25 ) NOT NULL , 
`email` VARCHAR( 50 ) NOT NULL , 
UNIQUE ( `student_id` ) 
);

然后使用以下查询

INSERT INTO `student` ( `name` , `email` ) VALUES ( 'john', 'email' );

如您所见,查询中未指定id,但该字段具有AUTO_INCREMENT属性。当您插入没有ID的学生时,它将获得最高ID并添加一个。因此,如果您有空表并运行上面的插入查询,您将得到3行ID为1,2和3。



更多内容在mysql手册http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

P.S。如果您使用的是其他数据库,请指定其中一个。

---编辑1 --- 可能会非常误读这个问题(已经过了午夜,但这不是借口) 如果你想通过,你有几个选择 1.这里提到的一个隐蔽的领域 2.如果你从另一个页面添加评论,那么来自于comment.php?postid = 13的$ _GET ['postid'] 3.两者

但是在添加帖子存在的评论之前不要忘记。

...我可以建议使用akismet库来减少垃圾邮件吗? http://www.achingbrain.net/stuff/php/akismet

您在wordpress.com注册时可以免费获得一个密钥

答案 2 :(得分:0)

将ID放在表单的隐藏字段中:

<input type="hidden" name="post_id" value="id_goes_here" />

答案 3 :(得分:0)

我建议不要将ID作为表单的一部分,只使用您的数据库AUTO_INCREMENT功能。