有很多方法可以做到这一点......我试着给你一个简单的想法(不使用模式或复杂的方法):
1) 创建一个包含 cmets 的数据库表,我建议这些字段:
id (integer)
news_id (fk to id of the news)
date (i.e. Timestamp)
name (varchar(30... or less))
message (text)
2) 在您的前端页面中添加一个由 4 个字段组成的表单:
新闻ID:不言自明
名称:输入文本字段
消息:文本区域
验证码:(为了避免机器人完成)我建议你recaptcha。
<form action="add_comment.php" method="POST">
<label for="name">Your Name:</label>
<input type="text" id="name" name="name" />
<label for="name">Your Comment:</label>
<textarea id="comment" name="comment"></textarea>
<input type="hidden" name="news_id" value="<?php echo $news_id?>"/>
<input type="submit" value="Ok" name="save"/>
</form>
这个表单在 POST 中将数据发送到需要执行这些步骤的 add_comment.php:
2.A)检查$_POST数据是否存在
if(isset($_POST["save"]))
最好检查数据的来源(确保来自您的网站)。
2.B) 如果 $_POST 数据存在,检查必填字段并将错误存储在某个结构中:
if( (trim($_POST["name"]) == "") and (strlen($_POST["name"]) < 5) ){
$name_error = true;
}
2.C) 如果没有错误,将数据保存到数据库中:
- 打开数据库连接
- 组装查询。不要忘记将每个变量括在引号中并通过 mysql_real_escape_string 运行它(或使用准备好的语句)
- 运行此查询
- 重定向到当前页面
2.D) 如果有错误,请使用 get &error=1 中的变量重定向到主页。
在您的主页中检查此变量是否设置为定义是否需要打印一些错误消息。
(最好留在同一页面并显示错误以及填写输入的数据(avoid xss scripting))
3) 管理您的主页添加脚本以从数据库中选择评论,这里有一些步骤:
3.A) 对于您打印的每条新闻,获取 id(或用于在 db 中存储新闻的唯一键)。
3.B) 像这样执行一个简单的选择查询来获取该新闻的所有评论:
$query = "SELECT name,message from comments where id_news = '{$_newsid}' order by date DESC";
3C) 对于您通过此查询获得的每条评论,您可以通过以下方式打印数据:
<?php foreach($query_fetched_results as $comment):?>
<p class='name'><?php echo $comment['name'];?></p>
<p class='comment_body'><?php echo $comment['message'];?></p>
<?php endforeach;?>
4) 检查评论数量非常简单,在点 3B 对从查询中获得的数据进行计数。