Просмотр файла comm.php

Размер файла: 5.51Kb
  1. <?php
  2. define('_WBLIB',1);
  3. require_once ('inc/core.php');
  4.  
  5. if (!$set['comm']) exit('<div class="error">Модуль закрыт администратором</div>');
  6.  
  7. $req = mysql_query("SELECT * FROM `article` WHERE `id` = '$id' LIMIT 1");
  8. $res = mysql_fetch_assoc($req);
  9. if (mysql_num_rows($req) == 0 ) {
  10. require_once ('inc/head.php');
  11. echo 'Такой статьи не существует';
  12. require_once ('inc/foot.php');
  13. exit; }
  14.  
  15. // Заголовки
  16. $title = 'Комментарии к '.$res['name'];
  17. require_once ('inc/head.php');
  18. #############################
  19.  
  20. $act = isset($_GET['act']) ? $_GET['act'] : '';
  21. switch ($act) {
  22. case 'add' :
  23. echo "<script type='text/javascript'>
  24. function reload(){
  25. src=document.captcha.src;
  26. document.captcha.src='loading.gif';
  27. document.captcha.src=src+'?rand='+Math.random();
  28. }
  29. </script>";
  30. echo '<div class="title">Добавление комментария</div>';
  31. if (isset($_POST['go'])) {
  32. if (empty($_POST['name'])) $error = 'Вы не заполнили поле "Ваш ник"<br/>';
  33. $code = intval($_POST['code']) ;
  34. if ($code != $_SESSION['code']) $error.= 'Защитный код введен неверно !<br/>';
  35. if (empty($_POST['code'])) $error.= 'Вы не ввели защитный код<br/>';
  36. if (empty($_POST['text'])) $error.= 'Вы не заполнили поле "Отзыв"';
  37. if ($error) {
  38. echo '<div class="error">';
  39. echo $error;
  40. echo '</div>';
  41. }
  42. else {
  43. # Система антифлуда #
  44.  
  45. // User agent
  46. if (isset($_SERVER['HTTP_USER_AGENT'])) $ua = htmlspecialchars($_SERVER['HTTP_USER_AGENT']);
  47. else $ua = 'Не определен';
  48. $spam = 30;
  49. $antiflood = mysql_query("SELECT COUNT(*) FROM `comm` WHERE `id_article`='" .$id. "' AND `time` >='" . ($time - $spam) . "' AND `ip` = '".ip2int(getip())."' AND `soft` = '".mysql_real_escape_string($ua)."'");
  50. $flood = mysql_result($antiflood, 0) > 0 ? 1 : false;
  51. if ($flood) {
  52. echo '<div class="link"><b>Антифлуд !</b> Запрещенно часто добавлять сообщения ! <small>[порого '.$spam.' секунд]</small><br/>
  53. <a href="comm.php?id='.$id.'">Назад</a></div>';
  54. require_once ("inc/foot.php");
  55. exit;
  56. }
  57. $name = htmlspecialchars(trim($_POST['name']));
  58. $text = htmlspecialchars(trim($_POST['text']));
  59. $result = mysql_query("insert into `comm` SET
  60. `text`='" . mysql_real_escape_string($text) . "',
  61. `id_article`='".$id."',
  62. `time`='" . $time . "',
  63. `ip`='" .ip2int(getip()). "',
  64. `soft`='" . $ua . "',
  65. `name`='" . mysql_real_escape_string($name) . "';");
  66. unset($_SESSION['code']);
  67. if ($result == true) header('Location: '.$home.'/comm.php?id='.$id.'');
  68. else exit('Ошибка добавления комментария в базу данных');
  69. }
  70. }
  71. echo '<div class="link"><form action = "comm.php?act=add&id='.$id.'" method = "post" name = "form">
  72. Ник <small>[max 100]</small><br/>
  73. <input name="name" type="text" maxlength="100" value="" /><br/>
  74. Комментарий <small>[max 500]</small><br/>
  75. <textarea rows="3" name="text" maxlenght = "500"></textarea><br/>
  76. <small>Введите число с картинки</small><br/><img src="captcha.php" name="captcha" alt="код"/><a href="javascript:void(0)" onclick="reload()">Обн</a><br/>
  77. <input name="code" type="text" size="4" maxlength="6" /><br/>
  78. <input name="go" type="submit" value="Добавить" />
  79. </form></div>';
  80. echo '<div class="bar"><a href="comm.php?id='.$id.'">Назад</a></div>';
  81. break;
  82.  
  83. default :
  84.  
  85.  
  86. echo '<div class="title">Комментарии к '.$res['name'].'</div>';
  87.  
  88. $posts = mysql_result(mysql_query('SELECT COUNT(*) FROM `comm` WHERE `id_article` = '.$id.';'),0);
  89. $total = intval(($posts - 1) / $num) + 1;
  90. if($page > $total) $page = $total;
  91. $start = $page * $num - $num ;
  92. $result = mysql_query('SELECT * FROM `comm` WHERE `id_article` = '.$id.' ORDER BY id DESC LIMIT '.$start.', '.$num.'');
  93. if ($posts >0) {
  94. while ($m = mysql_fetch_array($result)){
  95. $m['text'] = nl2br($m['text']);
  96. $m['text'] = smileys($m['text']);
  97. $m['text'] = tags($m['text']);
  98. echo '<div class="link"><u>'.$m['name'].'</u>['.date('d.m.y H:i',$m['time']).']<br/>'.$m['text'].'';
  99. if ($level > 0) { echo '<div class="func"><u>IP</u>: '.int2ip($m['ip']).'<br/><u>Soft</u>: '.$m['soft'].'<br/>[<a href="panel/edit_comm.php?id='.$m['id'].'">изм.</a>][<a href="panel/del_comm.php?id='.$m['id'].'">уд.</a>]</div>';}
  100. echo '</div>';
  101. }
  102. }
  103. else {
  104. echo '<div class="link">Комментариев нет</div>';
  105. }
  106.  
  107. // Вывод меню
  108. if ($posts > $num) {
  109. nav($total,$page,$num,'comm.php?id='.$id.'&amp;');
  110. }
  111. echo '<div class="bar"><a href="comm.php?act=add&amp;id='.$id.'">Добавить комментарий</a><br/>
  112. <a href="article.php?id='.$id.'">К статье</a><br/>
  113. <a href="faq.php?act=bbcode">BB-коды</a>|<a href="faq.php?act=smile">Смайлы</a></div>';
  114. if ($usr_id) {
  115. if ($posts > 1) {
  116. echo '<div class="func"><a href="panel/del_comm.php?act=all&amp;id='.$id.'">Очисить комментарии</a></div>';
  117. }
  118. }
  119. echo '<div class="title">Всего '.$posts.' комментариев</div>';
  120. }
  121. echo '<div class="title"><a href="'.$home.'">Главная</a></div>';
  122. require_once ('inc/foot.php');
  123. ?>