Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erläuterung des PHP+Mysql-Q&A-Kommentarsystems ohne Aktualisierung

Detaillierte Erläuterung des PHP+Mysql-Q&A-Kommentarsystems ohne Aktualisierung

墨辰丷
Freigeben: 2023-03-28 10:46:01
Original
1912 Leute haben es durchsucht

Ich habe einen Quellcode für das Kommentarsystem geschrieben, um ihn mit allen zu teilen, einschließlich Emoticons und Kommentarmechanismus. Der Code ist einfach und leicht zu verstehen. Freunde, die ihn benötigen, können darauf verweisen.

Ich habe einen Quellcode für das Kommentarsystem geschrieben Code zum Teilen mit allen, einschließlich Ausdrücken und Kommentarmechanismus. Der Benutzername ist zufällig

Kommentar zu einem bestimmten Artikel

function subcomment() { 
  $data['uid'] = getUserid(); 
  $data['mtype'] = I("post.mtype", 0, 'int'); 
  if ($data['uid'] == '') { 
    echo json_encode(array("code" => -1)); 
  } else { 
    $content = addslashes(str_replace("\n", "<br />", $_POST[&#39;content&#39;])); 
    $data[&#39;tid&#39;] = I("post.id", 0, &#39;int&#39;); //文章id 
    if (strlen(preg_replace(&#39;/\[ [^\)]+? \]/x&#39;, &#39;&#39;, $content)) < 10) { 
      echo json_encode(array("code" => "short than 10", "error" => "评论的内容不能少于10个字符。")); 
      exit; 
    } 
    if (C("DB_PWD") != &#39;&#39;) { 
      if (time() - session("comment_time") < 60 && session("comment_time") > 0) {//2分钟以后发布 
        echo json_encode(array("code" => "fast", "error" => "您提交评论的速度太快了,请稍后再发表评论。")); 
        exit; 
      } 
    } 
    $data[&#39;pid&#39;] = I("post.pid", 0, &#39;int&#39;); 
    $data[&#39;pid_sub&#39;] = I("post.pid_sub", 0, &#39;int&#39;); 
    $lyid = $data[&#39;pid_sub&#39;] > 0 ? $data[&#39;pid_sub&#39;] : $data[&#39;pid&#39;]; 
    if ($lyid > 0) { 
      $lyinfo = M("comment")->field("uid")->where("id=&#39;" . $lyid . "&#39;")->find(); 
      $data[&#39;touid&#39;] = $lyinfo[&#39;uid&#39;]; 
    } else { 
      $data[&#39;touid&#39;] = 2; 
    } 
    $data[&#39;addtime&#39;] = time(); 
    $emots = getTableFile("emot"); 
    foreach ($emots as $v) { 
      $content = str_replace("[" . $v[&#39;name&#39;] . "]", "<img alt=&#39;" . $v[&#39;name&#39;] . "&#39; src=&#39;" . __APP__ . "/Public/emot/" . ($v[&#39;id&#39;] - 1) . ".gif&#39;>", $content); 
    } 
    $data[&#39;content&#39;] = addslashes($content); 
    $info = M("comment")->field("id")->where("content=&#39;" . $data[&#39;content&#39;] . "&#39;")->find(); 
    if ($info[&#39;id&#39;]) { 
      echo json_encode(array("code" => "comment_repeat", "error" => "检测到重复评论,您似乎提交过这条评论了")); 
      exit; 
    } 
    $lastid = M("comment")->add($data); 
    $points_comment = 20; 
    if ($lastid > 0) { 
      $day_start = strtotime(date("Y-m-d")); 
      $day_end = $day_start + 3600 * 24; 
      $comment_num_day = M("comment")->where("uid = " . $data[&#39;uid&#39;] . " AND addtime between " . $day_start . " AND " . $day_end . "")->count(); 
      if ($comment_num_day <= 5) { //少于5条每天,则添加积分 
//          addPoints("comment", $points_comment, $data[&#39;uid&#39;], "评论获得" . $points_comment . "积分", 5, 1); 
      } 
//        addMessage(&#39;comment&#39;, $data[&#39;tid&#39;], $data[&#39;pid&#39;], $data[&#39;mtype&#39;], $data[&#39;touid&#39;], $content); 
    } 
    session("comment_time", time()); 
    echo json_encode(array("code" => 200, "comment" => $content, "points" => $points_comment)); 
  } 
}
Nach dem Login kopieren

Erhält entsprechend den Paging-Parametern Entsprechender Kommentar Liste

function comments() { 
  $id = I("get.id", 0, &#39;int&#39;); 
  $mtype = I("get.mtype", 1, &#39;int&#39;); 
  $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][&#39;sub&#39;] = M("comment")->field("id,uid,content,pid_sub")->where("tid = " . $id . " AND pid = " . $v[&#39;id&#39;] . "")->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(); 
}
Nach dem Login kopieren

Kommentar-Paginierung wechseln

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("<p style=&#39;padding:20px 0;text-align:center;&#39;><img src=&#39;" + site_url + "Public/images/loading.gif&#39;></p>"); 
    $.get(getUrl("Box/comments"), { 
      page: page, 
      id: id, 
      totalnum: totalnum, 
      mtype: mtype 
    }, 
    function(data) { 
      $("#comment_list").html(data) 
    }) 
  }) 
}
Nach dem Login kopieren

Das Kommentarformular und das Emoticon-Formular wurden im komprimierten Paket platziert

CREATE TABLE IF NOT EXISTS `sucai_comment` ( 
 `id` int(11) NOT NULL AUTO_INCREMENT, 
 `uid` int(11) NOT NULL, 
 `touid` int(11) DEFAULT &#39;0&#39;, 
 `pid_sub` int(11) DEFAULT &#39;0&#39;, 
 `tid` int(11) NOT NULL, 
 `pid` int(11) DEFAULT &#39;0&#39;, 
 `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 ;
Nach dem Login kopieren

Das Obige ist der gesamte Inhalt dieses Artikels, I Ich hoffe, es wird für alle hilfreich sein. Lernen hilft.


Verwandte Empfehlungen:

PHP-Implementierung KommentareDetaillierte Erläuterung der Antwort- und Löschfunktionsbeispiele

PHP Unlimited LevelKommentarDetaillierte Erläuterung der Verschachtelungsimplementierungsschritte

PHP Unlimited LevelKommentar Verschachtelungsimplementierungsschritte Detaillierte Erklärung

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des PHP+Mysql-Q&A-Kommentarsystems ohne Aktualisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage