用PHP来制作评论系统

  有什么问题请与我联系:http://www.webjx.com web@webjx.com

  我们在实际做的过程中很是简单的,希望大家好好研究一下,给补充多点功能。本程序须在PHP and mySQL的环境下运行。有三个文件:comments.php, 是用来显示[评论的, commentadd.php, 用来处理评论内容的, and commentform.html 通过FROM来提交评论。

  1.首先建立一个数据库,如果已经建立则建立一个符合条件的表:
  CREATE TABLE `comtbl` (
  `postID` INT NOT NULL AUTO_INCREMENT ,
  `postTITLE` TEXT NOT NULL ,
  `posterNAME` TEXT NOT NULL ,
  `posterEMAIL` TEXT NOT NULL ,
  `postTIME` TIMESTAMP NOT NULL ,
  `postTXT` TEXT NOT NULL ,
  PRIMARY KEY ( `postID` )
  );

  评论查看页:COMMENTS.PHP,具体内容为(有用户名和密码的在实际工作中要改变):
$dbcnx = mysql_connect("localhost", "username", "password");
mysql_select_db("comments");
接下来需要对表进行查询,并且把ID 按Descending: 顺序排序:

  $result = mysql_query("SELECT * FROM comtbl ORDER BY postID DESC");
if (!$result) {
echo("<b>Error performing query: " . mysql_error() . "</b>");
exit();
}

  在这里因为要读出好多条记录,所以用循环来读,具体程序如下:
while ($row = mysql_fetch_array($result) ) {
$msgTxt = $row["postTXT"];
$msgId = $row["postID"];
$SigName = $row["posterNAME"];
$SigDate = $row["postTIME"];
$msgTitle = $row["postTITLE"];
$url = $row["posterEMAIL"];

  现在到了最关键的一步了,也是困难的一步: 因为在这里用到MySQL's TIMESTAMP 函数 (功能是可以自动的饿把时间添加到一个表中),并且需要取得时间的字符串,使用字符串函数substr() ( $yr 表示年, $mo 表示月, 等等):

$yr = substr($SigDate, 2, 2);
$mo = substr($SigDate, 4, 2);
$da = substr($SigDate, 6, 2);
$hr = substr($SigDate, 8, 2);
$min = substr($SigDate, 10, 2);
  还需要对上述代码的功能加以扩充来实现12或24小时表示或者用 AM和PM来表示上下午,代码如下:

  if ($hr > "11") {
$x = "12";
$timetype = "PM";
$hr = $hr - 12;
}else{
$timetype = "AM";
}

  另外,当评论者要是留下Email 的话,我们可以在这里来建立一个连接实现联系发评论的人.代码如下:

  if (!$url) {
$url = "#";
}else{
$stat = $url;
$url = "mailto:" . $url . "";
}

  最后,我们可以按行来显示数据,并且关闭循环,最终的显示代码如下:

  echo("<p><b>$msgTitle</b>
  $msgTxt<br>
  <div align=right>$hr:$min $timetype | $mo/$da/$yr | $msgId, <a href='$url'>$SigName</a></div></p>");

}
  <p><b>Message Title</b>
  Text within the message, blah blah<br>
  <div align=right>Hour:Minute AM/PM | Month/Day/Year | Message ID, <a href='mailto:test@test.com'>Name with email link</a></div></p>

  表单处理的程序: COMMENTADD.PHP

  首先我们设置一些变量,然后通过表单把变量获得的数据提交到后台数据库中,并且请记住用户名和密码。

  $assume = $_POST['assume'];
  $posterEMAIL = $_POST['postemail'];
  $postTXT = $_POST['posttxt'];
  $posterNAME = $_POST['poster'];
  $postTITLE = $_POST['posttitle'];

if ($assume == "true") {

$dbcnx = mysql_connect("localhost", "username", "password");

mysql_select_db("comments");

$sql = "INSERT INTO comtbl SET posterNAME='$posterNAME', posterEMAIL='$posterEMAIL',
postTXT='$postTXT', postTITLE='$postTITLE'";

if (mysql_query($sql)) {
echo("<P>Your comment has been added</P>");

} else {
echo("<P>Error adding entry: " . mysql_error() . "</P>");
}
}

  提交了自己的评论之后还要有跳转的功能,下面的Javascript代码就可以实现跳转到指定的页面。

<script language=javascript>
<!--
location.href="comments.php";
//-->
</script>

  下面是具体的COMMENTFORM.HTML代码,通过下面的内容,可以让发表评论者发表评论,然后通过提交可以把数据提交到commentadd.php里面来实现数据的在线提交。

<form action="commentadd.php" method=post>
<input type="text" name="poster" size="23" value="name"><br />
<input type="text" name="posttitle" size="23" value="name"><br />
<input type="text" name="postemail" size="23" value="user@email.com"><br />
<textarea cols=44 rows=6 name="posttxt" size=24 wrap="VIRTUAL">message<br />
<input type=hidden name=assume value=true>
<input type="submit" value="submit">

  下面是处理评论的代码 comments.php:
<?
$dbcnx = mysql_connect("localhost", "username", "password");
mysql_select_db("comments");

$result = @mysql_query("SELECT * FROM comtbl ORDER BY postID DESC");
if (!$result) { echo("<b>Error performing query: " . mysql_error() . "</b>");
exit();
}

while ($row = mysql_fetch_array($result) ) {
$msgTxt = $row["postTXT"];
$msgId = $row["postID"];
$SigName = $row["posterNAME"];
$SigDate = $row["postTIME"];
$msgTitle = $row["postTITLE"];
$url = $row["posterEMAIL"];
$yr = substr($SigDate, 2, 2);
$mo = substr($SigDate, 4, 2);
$da = substr($SigDate, 6, 2);
$hr = substr($SigDate, 8, 2);
$min = substr($SigDate, 10, 2);

if ($hr > "11") {
$x = "12";
$timetype = "PM";
$hr = $hr - 12;
}else{
$timetype = "AM";
}
if (!$url) {
$url = "#";
}else{
$stat = $url;
$url = "mailto:" . $url . "";
}

echo("<p><b>$msgTitle</b> $msgTxt<br><div align=right>
$hr:$min $timetype | $mo/$da/$yr | $msgId, <a href='$url'>$SigName</a></div></p>");
}

?>
  下面是 commentadd.php:
<?
$assume = $_POST['assume'];
$posterEMAIL = $_POST['postemail'];
$postTXT = $_POST['posttxt'];
$posterNAME = $_POST['poster'];
$postTITLE = $_POST['posttitle'];

if ($assume == "true") {

$dbcnx = mysql_connect("localhost", "username", "password");
mysql_select_db("comments");
$sql = "INSERT INTO comtbl SET posterNAME='$posterNAME', posterEMAIL='$posterEMAIL',
postTXT='$postTXT', postTITLE='$postTITLE'";
if (mysql_query($sql)) {
echo("Your comment has been added");
} else {
echo("Error adding entry: " . mysql_error() . "");
}
}

?>
<script language=javascript>
<!--
location.href="comments.php";
//-->
</script>

  整个程序到这就完了,想拥有自己评论系统的站长请试试吧

时间: 2024-08-22 14:19:11

用PHP来制作评论系统的相关文章

ASP+AJAX打造无刷新新闻评论系统

ajax|asp+|刷新|无刷新 不知上过ChinaRen校友录的朋友们有没有注意,ChinaRen在改版后很多方面都进行了较大的改动.例如留言与回复方面已经不再像以前那样,在每次提交后总得重新加载一下整个页面,碰到网速超慢时,只能干瞪着眼睛等待.那么现在这种炫丽的效果又是如何做到的呢,如果你觉得有兴趣,那就跟着我一起往下看吧! 了解Ajax的朋友也许知道其实这种炫丽效果的实现并不是一件很为难的事,当然如果你不了解何为Ajax那也没有关系,本节我们就通过打造一个新闻评论系统,来看看到底什么是Aj

Asp+flash打造简单新闻评论系统

"我最初看到有几个网站在做一些我想做的事情,但是还没有完全是现在的样子.我是想做的一些网络应用最早是想用FLASH的,但是我手下的员工对FLASH不熟悉,我想怎么样用传统的Web技术也能达到FLASH的效果.后来我在实践中发现,可以把JavaScript 和 XML 这两种传统的Web技术让来实现." 以上文字是Ajax的提出者Jesse James Garrett在"internet+互联网世纪论坛"上接受新浪网专访时所讲的话.你看了这段文字有什么想法呢,是不是觉

怎么制作ghost系统光盘

  制作ghost系统光盘步骤如下 1.放入光盘,以管理员身份运行UltraISO光盘制作工具,点击"文件"-"打开",选择ghost系统ISO镜像; 2.点击菜单栏的"工具",选择"刻录光盘映像"或快捷键F7; 3.转到这个界面,默认设置不用改,直接点击"刻录"; 4.接着等待制作完成即可.

网站评论系统的开源插件的使用

当你在做一个网站的同时,你可能会为网站做一些可以互动的环节.在SNS越来越重要的这个时代,像腾讯,新浪,阿里等等都争着做社交化元素.同样的如果一个网站缺少社交模块,那么你的网站遭遇冷落也是很正常的.许多人说,看XX网站,就是看标题和评论,甚至是与话题毫不相关的评论,评论为何成为网站的香饽饽.可以网站的评论系统对我们有多么的重要. 如果你的网站想重新设计一个评论系统,你所花费的人力,财力将不可想象. 好吧,废话就不多说了,我们看看网上的一些现成的评论系统的使用吧. 多说评论系统的使用: <!DOC

镜像-请问如何用easyboot制作WIN7系统装机盘

问题描述 请问如何用easyboot制作WIN7系统装机盘 1C 我在网上查了许多材料发现版本太多了不知道用哪一个也不知道适不适用于WIN7系统盘的制作.我目前所准备的工具如下:1.EASYBOOT 5.1.0.5652.img文件:DISKGENIUS.DM10.ghost.MEMTEST.PQ805CHT.红叶DOS工具箱2010年升级3.win7.bif 从网上下的,在某资料中看到,不知道有什么作用,也不知道这个文件是否需要编辑.4.gho文件:从雨林木风下的ISO文件,提取其中的win7

社会化评论系统(第三方评论)知多少

中介交易 SEO诊断 淘宝客 云主机 技术大厅 网络发展到现在,已经经过很多轮的洗牌!物竞生存是硬道理,网站也是如此!感觉新的一轮要来了.今天在看站长之家的文章时发现有条留言的提示,我纳闷了,是什么东西,一点开发现是多说的评论回复!搞了半天原来站长之家这几天把topcms的评论系统给抛弃了,使用时髦的第三方评论系统"多说",也叫社会化评论系统. 站长网一直是国内建站行业的风向标,最早A5和chianz使用织梦cms系统建站,在行业的潜规则中胜出,成为佼佼者.这两个站长网也成为许多站长每

js组件SlotMachine实现图片切换效果制作抽奖系统_javascript技巧

前言:前两天在网上找组件,无意中发现了我们儿时游戏机效果的"SlotMachine组件",浏览一遍下来,勾起了小时候满满的回忆. 下面就带着大家来看看这么一个神奇的组件--SlotMachine吧. 一.组件预览 先来一发简单的效果压压惊 觉得太简单?别急,好戏在后头,试试手气先. 什么?还没达到想要的效果,好!下面,真实效果来一发. 点击了好长时间,都没有中奖,难怪小时候怎么都赢不了呢.不信邪,继续点击开始,终于有一次中奖的了,真心不容易. 还有我们年终抽奖效果,开始!停止! 二.代

Facebook改进评论系统:自动隐藏垃圾信息

新浪科技讯 http://www.aliyun.com/zixun/aggregation/17197.html">北京时间3月29日下午消息,Facebook本周将在评论系统中推出两项新功能,不仅可以为评论生成独立链接,还可以自动隐藏垃圾信息. Facebook已经推出了永久链接功能,只要点击评论上的时间戳即可获得一个指向该评论的永久链接,方便好友之间相互分享. 除此之外,系统还会将低质量的信息识别为垃圾信息,并自动隐藏,而不仅仅是灰化.Facebook页面管理员可以手动对标记为垃圾评论

从点评职业化看全球最大中文酒店评论系统的建造

近日,刚完成第三轮融资的旅游搜索引擎"去哪儿"发布了致力于打造http://www.aliyun.com/zixun/aggregation/31877.html">全球最大的中文酒店点评系统的计划.该计划的第一步便是在智联招聘.前程无忧等招聘网站花费百万元资金招聘"酒店试睡员".这个计划旨在收集高质量的酒店评论,为网站的酒店频道增添内容.中国网民也第一次有机会以发表点评作为自己的正式职业. UGC通常指的是用户在网站上免费共享自己的内容,然后&qu