PHP+Mysql无刷新问答评论系统(源码)

2025-05-27 0 59

自己写的一个评论系统源码分享给大家,包括有表情,还有评论机制。用户名是随机的

针对某一篇文章进行评论

  1. functionsubcomment(){
  2. $data['uid']=getUserid();
  3. $data['mtype']=I("post.mtype",0,'int');
  4. if($data['uid']==''){
  5. echojson_encode(array("code"=>-1));
  6. }else{
  7. $content=addslashes(str_replace("","<br/>",$_POST['content']));
  8. $data['tid']=I("post.id",0,'int');//文章id
  9. if(strlen(preg_replace('/[[^)]+?]/x','',$content))<10){
  10. echojson_encode(array("code"=>"shortthan10","error"=>"评论的内容不能少于10个字符。"));
  11. exit;
  12. }
  13. if(C("DB_PWD")!=''){
  14. if(time()-session("comment_time")<60&&session("comment_time")>0){//2分钟以后发布
  15. echojson_encode(array("code"=>"fast","error"=>"您提交评论的速度太快了,请稍后再发表评论。"));
  16. exit;
  17. }
  18. }
  19. $data['pid']=I("post.pid",0,'int');
  20. $data['pid_sub']=I("post.pid_sub",0,'int');
  21. $lyid=$data['pid_sub']>0?$data['pid_sub']:$data['pid'];
  22. if($lyid>0){
  23. $lyinfo=M("comment")->field("uid")->where("id='".$lyid."'")->find();
  24. $data['touid']=$lyinfo['uid'];
  25. }else{
  26. $data['touid']=2;
  27. }
  28. $data['addtime']=time();
  29. $emots=getTableFile("emot");
  30. foreach($emotsas$v){
  31. $content=str_replace("[".$v['name']."]","<imgalt='".$v['name']."'src='".__APP__."/Public/emot/".($v['id']-1).".gif'>",$content);
  32. }
  33. $data['content']=addslashes($content);
  34. $info=M("comment")->field("id")->where("content='".$data['content']."'")->find();
  35. if($info['id']){
  36. echojson_encode(array("code"=>"comment_repeat","error"=>"检测到重复评论,您似乎提交过这条评论了"));
  37. exit;
  38. }
  39. $lastid=M("comment")->add($data);
  40. $points_comment=20;
  41. if($lastid>0){
  42. $day_start=strtotime(date("Y-m-d"));
  43. $day_end=$day_start+3600*24;
  44. $comment_num_day=M("comment")->where("uid=".$data['uid']."ANDaddtimebetween".$day_start."AND".$day_end."")->count();
  45. if($comment_num_day<=5){//少于5条每天,则添加积分
  46. //addPoints("comment",$points_comment,$data['uid'],"评论获得".$points_comment."积分",5,1);
  47. }
  48. //addMessage('comment',$data['tid'],$data['pid'],$data['mtype'],$data['touid'],$content);
  49. }
  50. session("comment_time",time());
  51. echojson_encode(array("code"=>200,"comment"=>$content,"points"=>$points_comment));
  52. }
  53. }

根据分页参数获取对应评论列表

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18
function comments() {

$id = I("get.id", 0, 'int');

$mtype = I("get.mtype", 1, 'int');

$page = I("get.page", 1, "int");

$totalnum = I("get.totalnum", 1, "int");

$start = 10 * ($page - 1);

$sql = "tid = " . $id . " AND pid = 0";

$comments = M("comment")->field("id,uid,content,addtime")->where($sql)->order("id DESC")->limit($start . ",10")->select();

// echo M("comment")->getlastsql();

foreach ($comments as $k => $v) {

$comments[$k]['sub'] = M("comment")->field("id,uid,content,pid_sub")->where("tid = " . $id . " AND pid = " . $v['id'] . "")->order("id ASC")->select();

}

$this->assign("id", $id);

$this->assign("mtype", $mtype);

$this->assign("comments", $comments);

$this->assign("comments_num", $totalnum - ($page - 1) * 10);

$this->display();

}

切换评论分页

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20
if ($("#detail-page").length > 0) {

var id = $("#detail-page").attr("data-id");

var mtype = $("#detail-page").attr("data-mtype");

var totalnum = $("#detail-page").attr("data-totalnum");

$("#detail-page").children("a").click(function() {

var page = parseInt($(this).attr("data-page"));

$("#detail-page").children("a").removeClass("current");

$("#detail-page").children("a").eq(page - 1).addClass("current");

$("#comment_list").html("<div style='padding:20px 0;text-align:center;'><img src='" + site_url + "Public/images/loading.gif'></div>");

$.get(getUrl("Box/comments"), {

page: page,

id: id,

totalnum: totalnum,

mtype: mtype

},

function(data) {

$("#comment_list").html(data)

})

})

}

评论表和表情表已放在压缩包里

?

1

2

3

4

5

6

7

8

9

10

11

12
CREATE TABLE IF NOT EXISTS `sucai_comment` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`uid` int(11) NOT NULL,

`touid` int(11) DEFAULT '0',

`pid_sub` int(11) DEFAULT '0',

`tid` int(11) NOT NULL,

`pid` int(11) DEFAULT '0',

`mtype` tinyint(1) NOT NULL,

`content` text NOT NULL,

`addtime` int(10) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5560 ;

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP+Mysql无刷新问答评论系统(源码) https://www.kuaiidc.com/73521.html

相关文章

发表评论
暂无评论