添加评论系统到我的网站

时间:2010-12-10 19:42:50

标签: php jquery html css comments

嘿大家,我正在尝试在我的网站上添加某种类型的评论系统,以便我在主页上发布新闻。我想要它做的是有任何人评论它(他们不需要登录)。评论提交表单只需要一个名称和评论。 最简单的方法是什么?让它显示当前新闻帖中有多少评论也是很好的。我不需要任何花哨的东西。 谢谢!

6 个答案:

答案 0 :(得分:7)

如果您不想编写自己的评论系统,可以使用http://disqus.com/

答案 1 :(得分:3)

有很多方法可以做到这一点...我试着给你一个简单的想法(没有使用模式或复杂的方法):

1)创建数据库表以包含注释,我建议这些字段:

id (integer)
news_id (fk to id of the news) 
date (i.e. Timestamp)
name (varchar(30... or less))
message (text)  

2)在您的frontEnd页面添加一个由4个字段组成的表单: news-id:不言自明 name:输入文本字段 消息:textarea 验证码:(为了避免机器人完成)我建议你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&amp; error = 1中的变量重定向到主页。 在主页面中检查是否设置了此变量以定义是否需要打印一些错误消息。 (最好留在同一页面上显示错误并填写输入的数据(avoid xss scripting))

3)管理您的主页面,添加一个脚本以从DB中选择评论,这里有一些步骤:

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点的查询获得的数据进行计数。

答案 2 :(得分:2)

这很简单php guest book tutorial。我知道它不是你要求的,但它非常相似。根据您的需要定制它。 PS:我真的会想到eykanal写的是什么。 您需要为文章ID,页面ID等添加一列......

随访:

正如大家所提到的,这个示例/教程不是最安全/正确设计的工作,只是为了向您展示复杂程度,并让您了解您正在进行的工作。阅读之后我还会阅读一些有关php / mysql注入漏洞和简单数据库设计原理的文章

答案 3 :(得分:2)

除了处理垃圾邮件外,这还相当简单。这是第一次很好的学习练习。

保存评论......

在HTML中,您可以使用评论字段制作表单。用POST提交表格。

在PHP中,读取$ _POST中的字段并检查它们的有效性 - 名称长度为x个字符,而不是空白等。通过mysql_real_escape_string()从用户运行数据并将其放在INSERT中请求参数。运行查询。这里的一个关键想法 - 不要相信用户输入 - 以您能想到的每种方式进行检查。 Stack Overflow上有很多关于这个主题的帮助。

显示评论......

运行SELECT查询,查找与您的发布相对应的ID。输出字符串的名称和注释(使用strip_tags()从注释中删除不需要的HTML),根据需要引入您自己的布局HTML。在将每个注释输出到字符串时,您可以轻松计算注释。然后将格式化的注释输出到页面。

在此过程中需要考虑很多选项 - 您是否想要允许某些HTML?你是如何处理不可避免的垃圾邮件的?你是在线程评论,允许头像,Gravitars,电子邮件地址,海报的URL等吗?您是通过某个系统制作帖子还是仅仅构建页面?

编辑:更正了我对mysql_real_escape_string()的建议。感谢Col. Shrapnel指出我的错误。

答案 4 :(得分:1)

您可以使用IntenseDebate

  

功能

     

评论线程

     

改善内部对话   评论部分并直接回复   个人评论。缩进   回复做了以下各种   对话易于管理。

     

回复逐电子邮件

     

回应并温和评论   通过电子邮件轻松,即使你在   走。只是因为你离开了你   电脑并不代表谈话   停止。

     

电子邮件通知

     

评论员收到电子邮件提醒时   回复他们的评论,   将它们直接链接到响应。   添加回复电子邮件,以及   订阅所有评论的选项   让争论随之而来!

     

ntense debate feature

     

电子邮件通知

     

评论员收到电子邮件提醒时   回复他们的评论,   将它们直接链接到响应。   添加回复电子邮件,以及   订阅所有评论的选项   让争论随之而来!

     

评论者个人资料

     

评论者简介让你和你的   读者可以更多地了解彼此。   观看对话转到新的   一旦你和你的读者,你的水平   能够相互了解。别   忘了,他们的通用档案可以   用于任何网站   IntenseDebate的!

     

<强>审核/黑名单

     

Disqus提供了一些真实的   铁杆审核选项。定制   您的设置要按关键字来调节,   链接数量,评论者电子邮件,   和/或IP地址。

     

声望点&amp;评论投票

     

您的读者将开始构建他们的   他们创造时的评论员声誉   一个关键帐户。其   声誉得分是基于   数量,更重要的是   质量,他们所做的评论   用于访问所有网站。   带来质量评论   最前沿。

     

插件API

     

我们已经打开了我们的代码   开发者自己介绍   创造了辩论。这些   增强功能包括Seesmic视频   评论,民意调查民意调查,YouTube   视频,表情符号等。有兴趣   在构建自己的自定义?   查看我们的插件API。

     

<强>的OpenID

     

您的读者可以轻松发表评论   使用他们的OpenID。他们可以绑他们的   OpenID到他们的个人资料   所以他们不必担心   记住另一组登录   凭证。

     

<强>窗口小部件

     

我们已经构建了一些奇特的小部件   根据你的反馈。你可以显示你的   博客的评论统计数据,最新的   您最喜欢的博客评论   热门帖子,最新的   你做过的评论,甚至是谁   top IntenseDebaters是。

     

<强>微博

     

让评论者可以选择   他们发送同时发送的推文   发表评论。这是一个很好的方式   让你的评论者传播这个词   关于您的网站并推动新的流量   和评论!

     

Facebook Connect

     

打开辩论,让任何人参加   一个Facebook帐户发表评论   您的网站使用我们的Facebook Connect   整合!

     

RSS读者&amp;跟踪

     

RSS阅读器使生活变得简单。那是   为什么我们整合了   谷歌阅读器和评论   Bloglines(有更多RSS阅读器   方式)所以你可以阅读和发布   直接从您的RSS评论   阅读器。

答案 5 :(得分:0)

NOT WOMOMENDED将评论存储在文本文件中的基本PHP表单:

a)复制并粘贴在&#34; php文件中的代码下面#34;你想在哪里显示评论表。

b)制作一个文件&#34; comments.txt&#34;在您拥有&#34; php文件&#34;。

的同一文件夹中
<?php
$name = $_POST['name'];
$comment = $_POST['comment'];

if ($_POST)
    {
    $handle = fopen("comments.txt", "a");
    fwrite($handle, $name . ":<br/>" . $comment . "<br/>");
    fclose($handle);
    }

?>

<form method="post">
Name:<input type="text" name="name"><br/>
Comment:<textarea name="comment"></textarea><br/>
<input type="submit" name="submit" value="Post">
</form>

<?php include "comments.txt"; ?>