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

Размер файла: 13.58Kb
  1. <?php
  2. include "header/config.inc.php";
  3. include "header/function.inc.php";
  4. include "header/header.inc.php";
  5. include "header/connect.inc.php";
  6. include "header/click-club.class.php";
  7. include "header/enter.inc.php";
  8. include "header/ban.php";
  9.  
  10. If (!isset($_GET['mode']) || !ereg("^[a-z0-9_-]{1,15}$",$_GET['mode'])) $mode=false; else $mode=$_GET['mode'];
  11.  
  12. @mysql_query("UPDATE `".prefix."users` SET `mesto`='В форуме' WHERE `id` = '".$_USER['id']."'");
  13.  
  14. echo '<div class="header_rek"><b>Форум</b></div><a href="forum.php'.$_zapros.'mode=bbkod">BB Код</a> | <a href="forum.php'.$_zapros.'mode=smiles">Смайлы</a><br/><br/>';
  15.  
  16. switch($mode){
  17.  
  18. case false:
  19. default:
  20.  
  21. $forums = mysql_query("SELECT * FROM `".prefix."forums` ORDER BY `id` DESC");
  22. while($forum=mysql_fetch_array($forums)){
  23. $num_theme = mysql_query("SELECT * FROM `".prefix."themes` WHERE `id_forum`='".$forum['id']."'");
  24. $num_themes = mysql_num_rows($num_theme);
  25. $num_post = mysql_query("SELECT * FROM `".prefix."posts` WHERE `id_forum`='".$forum['id']."'");
  26. $num_posts = mysql_num_rows($num_post);
  27. echo '<img src="images/dot.gif" alt=""/><a href="forum.php'.$_zapros.'mode=themes&id='.$forum['id'].'">'.$forum['name'].'</a> <b>('.$num_themes.'/'.$num_posts.')</b>';
  28. If ($_USER['admin'] || $_USER['moder'])
  29. {
  30. echo ' [<a href="forum.php'.$_zapros.'mode=del&type=1&id='.$forum['id'].'">уд</a>] [<a href="forum.php'.$_zapros.'mode=del&type=8&id='.$forum['id'].'">ред</a>]<br/>';
  31. }else echo '<br/>';
  32. }
  33.  
  34. $frs = mysql_num_rows($forums);
  35. $th = mysql_query("SELECT * FROM `".prefix."themes`");
  36. $ths = mysql_num_rows($th);
  37. $pt = mysql_query("SELECT * FROM `".prefix."posts`");
  38. $pts = mysql_num_rows($pt);
  39.  
  40. echo '<br/>Разделов: (<b>'.$frs.'</b>) Тем: (<b>'.$ths.'</b>) Постов: (<b>'.$pts.'</b>)<br/>';
  41.  
  42. If ($_USER['admin'] || $_USER['moder']){
  43. echo '<a href="forum.php'.$_zapros.'mode=add_kat">Добавить категорию</a><br/>';
  44. }
  45. break;
  46.  
  47. case 'themes':
  48.  
  49. $id = $_GET['id'];
  50. $result2 = mysql_query("SELECT * FROM `".prefix."themes` WHERE `id_forum`='".$id."' and `type`=1 ORDER by `last_time` DESC");
  51.  
  52. while($zak=mysql_fetch_array($result2)){
  53. //Закреплённые темы
  54. $ida = $zak['id'];
  55. $num_post = mysql_query("SELECT * FROM `".prefix."posts` WHERE `id_theme`='".$ida."'");
  56. $num_posts = mysql_num_rows($num_post);
  57.  
  58. echo '<img src="images/vip.gif" alt="!"/> <a href="forum.php'.$_zapros.'&mode=posts&id='.$id.'&ida='.$ida.'">'.$zak['name'].'</a> <b>['.$num_posts.']</b> <b>'.$zak['login'].'</b> '.$zak['time'];
  59.  
  60. If ($_USER['admin'] || $_USER['moder']){
  61. echo ' [<a href="forum.php'.$_zapros.'mode=del&type=2&id='.$zak['id'].'">уд</a>] [<a href="forum.php'.$_zapros.'mode=del&type=5&id='.$zak['id'].'">антоп</a>]<br/>';
  62. }else echo'<br/>';
  63. }
  64.  
  65. If (!isset($_GET['page']) || !is_numeric($_GET['page'])) $page=1; else { $page=$_GET['page']; (int)$page;}
  66.  
  67. $result = mysql_query("SELECT * FROM `".prefix."themes` WHERE `id_forum`='".$id."' AND NOT `type`='1' ORDER by `last_time` DESC LIMIT ".(($page-1)*num_best_on_page).",".(num_best_on_page+1));
  68.  
  69. $next = false;
  70. $num = mysql_num_rows($result);
  71.  
  72. If ($num>0){
  73.  
  74. If ($num<=num_best_on_page) $read=$num; else {
  75. $read = num_best_on_page;
  76. $next = true;
  77. }
  78.  
  79. for ($i=0;$i<$read;$i++){
  80.  
  81. $ida = mysql_result($result,$i,'id');
  82. $num_post = mysql_query("SELECT * FROM `".prefix."posts` WHERE `id_theme`='".$ida."'");
  83. $num_posts = mysql_num_rows($num_post);
  84. $type = mysql_result($result,$i,'type');
  85.  
  86. if(!$type==0){
  87. //Закрытые темы
  88. echo '<img src="images/dot2.gif" alt=""/> <a href="forum.php'.$_zapros.'&mode=posts&id='.$id.'&ida='.$ida.'">'.mysql_result($result,$i,'name').'</a> <b>['.$num_posts.']</b> <b>'.mysql_result($result,$i,'login').'</b> '.mysql_result($result,$i,'time').'';
  89.  
  90. If ($_USER['admin'] || $_USER['moder']){
  91. echo ' [<a href="forum.php'.$_zapros.'mode=del&type=2&id='.mysql_result($result,$i,'id').'">уд</a>] [<a href="forum.php'.$_zapros.'mode=del&type=4&id='.mysql_result($result,$i,'id').'">топ</a>] [<a href="forum.php'.$_zapros.'mode=del&type=7&id='.mysql_result($result,$i,'id').'">отк</a>]<br/>';
  92. }else echo'<br/>';
  93.  
  94. }else{
  95. //Открытые темы
  96. echo '<img src="images/dot.gif" alt=""/> <a href="forum.php'.$_zapros.'&mode=posts&id='.$id.'&ida='.$ida.'">'.mysql_result($result,$i,'name').'</a> <b>['.$num_posts.']</b> <b>'.mysql_result($result,$i,'login').'</b> '.mysql_result($result,$i,'time');
  97.  
  98. If ($_USER['admin'] || $_USER['moder']){
  99. echo ' [<a href="forum.php'.$_zapros.'mode=del&type=2&id='.mysql_result($result,$i,'id').'">уд</a>] [<a href="forum.php'.$_zapros.'mode=del&type=4&id='.mysql_result($result,$i,'id').'">топ</a>] [<a href="forum.php'.$_zapros.'mode=del&type=6&id='.mysql_result($result,$i,'id').'">закр</a>]<br/>';
  100. }else echo'<br/>';
  101. }
  102. }
  103.  
  104. $counttem = mysql_num_rows(mysql_query("SELECT * FROM `".prefix."themes` WHERE `id_forum`='".$id."' AND NOT `type`='1'"));
  105.  
  106. echo '<br/>Всего тем в разделе: <b>'.$counttem.'</b><br/>';
  107.  
  108. } else echo 'Нет тем!<br/>';
  109.  
  110. If ($page>1) echo '<a href="'.$_zapros.'mode=themes&amp;page='.($page-1).'&id='.$id.'">Назад</a> ';
  111. If ($next) echo '<a href="'.$_zapros.'mode=themes&amp;page='.($page+1).'&id='.$id.'">Вперед</a>';
  112.  
  113. if($_enter){
  114. echo '<br/><img src="images/msg.gif" alt=""/> <a href="forum.php'.$_zapros.'mode=add&id='.$id.'">Создать тему</a><br/>';
  115. }
  116. break;
  117.  
  118. case 'posts':
  119.  
  120. $id = $_GET['id'];
  121. $ida = $_GET['ida'];
  122.  
  123. If (!isset($_GET['page']) || !is_numeric($_GET['page'])) $page=1; else { $page=$_GET['page']; (int)$page;}
  124.  
  125. $result = mysql_query("SELECT * FROM `".prefix."posts` WHERE `id_theme`='".$ida."' and `id_forum`='".$id."' ORDER BY `id` DESC LIMIT ".(($page-1)*num_best_on_page).",".(num_best_on_page+1));
  126.  
  127. $next = false;
  128. $num = mysql_num_rows($result);
  129.  
  130. If ($num>0){
  131.  
  132. If ($num<=num_best_on_page) $read=$num; else {
  133. $read = num_best_on_page;
  134. $next = true;
  135. }
  136.  
  137. $result666 = mysql_query("SELECT * FROM `".prefix."themes` WHERE `id`='".$ida."'");
  138. $res666 = mysql_fetch_array($result666);
  139.  
  140. echo 'В теме: <b>'.$res666['name'].'</b><br/>';
  141.  
  142. if($res666['type']==2){
  143. echo 'Эта тема закрыта, вы не можете писать сообщения.<br/><br/>';
  144. }else{
  145. if($_enter){
  146. echo '<a href="forum.php'.$_zapros.'mode=add_post&id='.$id.'&ida='.$ida.'">Написать</a>';
  147. }
  148. }
  149.  
  150. $post = mysql_query("SELECT * FROM `".prefix."posts` WHERE `id_theme`='".$ida."' and `id_forum`='".$id."' ORDER BY `id` asc LIMIT 1");
  151. $post = mysql_fetch_array($post);
  152.  
  153. if ($next){
  154. echo '<div class="contur_rek">
  155. <a href="inf.php'.$_zapros.'&logg='.$post['login'].'"><font color="black"><b>'.$post['login'].'</b></font></a> '.$post['time'].'<br/>
  156. '.$post['text'].'</div>';
  157. }
  158.  
  159. for ($i=0;$i<$read;$i++){
  160.  
  161. $text = mysql_result($result,$i,'text');
  162. $text = bbcode($text);
  163. $text = smile($text);
  164. $text = antilink($text);
  165. $text = stripslashes($text);
  166. $logsg = mysql_result($result,$i,'login');
  167. $izmts = mysql_result($result,$i,'izmts');
  168. $izmkol = mysql_result($result,$i,'izmkol');
  169. $izmkto = mysql_result($result,$i,'izmwho');
  170.  
  171. $nif = mysql_query("SELECT `admin`, `moder` FROM `".prefix."users` WHERE `login`='".$logsg."'");
  172. $zak = mysql_fetch_array($nif);
  173.  
  174. echo '<font color="white"><hr></font>
  175. <a href="inf.php'.$_zapros.'&logg='.$logsg.'"><font color="';
  176.  
  177. if ($zak['admin'] == 1) echo 'red';
  178. if ($zak['moder'] == 1) echo 'blue';
  179. if ($zak['admin'] == 0 && $zak['moder'] == 0) echo 'black';
  180.  
  181. echo '"><b>'.$logsg.'</b></font></a> '.mysql_result($result,$i,'time');
  182.  
  183. If ($_USER['login'] == $logsg){
  184. echo ' [<a href="forum.php'.$_zapros.'mode=red&id='.mysql_result($result,$i,'id').'&ida='.$ida.'">изм</a>]';
  185. }
  186.  
  187. If ($_USER['admin'] || $_USER['moder']){
  188. echo ' [<a href="forum.php'.$_zapros.'mode=del&type=3&id='.mysql_result($result,$i,'id').'">уд</a>]';
  189. }
  190. echo '<br/>'.$text.'<br/>';
  191.  
  192. If (!is_NULL($izmkto) && $izmkto!=''){
  193. echo '---<br/>
  194. Изм. : <b>'.$izmkol.'</b> раз. Последний раз: <b>'.date("H:i d.m.Y",$izmts).'</b> ник <b>'.$izmkto.'</b><br/>';
  195. }
  196.  
  197. }
  198.  
  199. echo '<font color="white"><hr></font>';
  200. $countpost = mysql_num_rows(mysql_query("SELECT * FROM `".prefix."posts` WHERE `id_theme`='".$ida."' and `id_forum`='".$id."'"));
  201. echo '<br/>Всего постов в теме: <b>'.$countpost.'</b><br/>';
  202. } else echo 'Сообщений нет! <br/>';
  203.  
  204. If ($page>1) echo '<a href="forum.php'.$_zapros.'mode=posts&amp;page='.($page-1).'&id='.$id.'&ida='.$ida.'">Назад</a> ';
  205. If ($next) echo '<a href="forum.php'.$_zapros.'mode=posts&amp;page='.($page+1).'&id='.$id.'&ida='.$ida.'">Вперед</a>';
  206. break;
  207.  
  208. case 'red':
  209.  
  210. $id = $_GET['id'];
  211. $ida = $_GET['ida'];
  212.  
  213. $result = mysql_query("SELECT * FROM `".prefix."posts` WHERE `id`='".$id."' && `login`='".$_USER['login']."'");
  214. If (!$result){
  215. echo 'Ошибка запроса к бд...';
  216. break;
  217. }
  218.  
  219. If (mysql_num_rows($result)!=1){
  220. echo 'Сообщение не найдено';
  221. break;
  222. }
  223.  
  224. $ans=mysql_result($result,0,'text');
  225.  
  226. echo 'Текст:<br/>
  227. <form method="post" action="'.$_zapros.'mode=redok&amp;id='.$id.'&ida='.$ida.'">
  228. <textarea cols="30" rows="5" name="text" maxlength="'.lenght_text.'">'.$ans.'</textarea><br/>
  229. <input value="OK" type="submit"/></form>';
  230. break;
  231.  
  232. case 'redok':
  233.  
  234. $id = $_GET['id'];
  235. $ida = $_GET['ida'];
  236.  
  237. If (!isset($_POST['text'])) {
  238. echo 'Сообщения не введено!';
  239. break;
  240. }
  241. $text = htmlspecialchars(trim(mysql_real_escape_string($_POST['text'])));
  242. $strlen=strlen($text);
  243.  
  244. If ($strlen<min_text || $strlen>lenght_text){
  245. echo 'Сообщение слишком длинное/короткое';
  246. break;
  247. }
  248.  
  249. $result = mysql_query("UPDATE `".prefix."posts` SET `text`='".$text."', `izmts`='".time()."', `izmkol`=`izmkol`+1, `izmwho`='".$_USER['login']."' WHERE `id`='".$id."' && `login`='".$_USER['login']."'");
  250. If (!$result){
  251. echo 'Ошибка запроса к бд...';
  252. break;
  253. }
  254. @mysql_query("UPDATE `".prefix."themes` SET `last_time`='".time()."' WHERE `id`='".$ida."'");
  255.  
  256. echo '<b>Пост изменен!</b>';
  257. break;
  258.  
  259. case 'add_post':
  260.  
  261. if($_enter){
  262.  
  263. $id = $_GET['id'];
  264. $ida = $_GET['ida'];
  265.  
  266. echo'<form action="forum.php'.$_zapros.'mode=add_postok&id='.$id.'&ida='.$ida.'" method="POST"/>
  267. <b>Пишем сообщение:</b><br/>
  268. <textarea cols="30" rows="5" name="text"></textarea><br/>
  269. <input type="Submit" value="Отправить"/></form>';
  270. }
  271. break;
  272.  
  273. case 'add_postok':
  274.  
  275. $id = $_GET['id'];
  276. $ida = $_GET['ida'];
  277. $text = htmlspecialchars(trim(mysql_real_escape_string($_POST['text'])));
  278. $time = date("d.m.y - H:i:s");
  279.  
  280. if($text){
  281. @mysql_query("INSERT INTO `".prefix."posts` (`id_theme`,`id_forum`,`login`,`text`,`time`) VALUES ('".$ida."','".$id."','".$_USER['login']."','".$text."','".$time."')");
  282. @mysql_query("UPDATE `".prefix."themes` SET `last_time`='".time()."' WHERE `id`='".$ida."'");
  283.  
  284. header("Location: forum.php".$_zapros."&mode=posts&id=".$id."&ida=".$ida);
  285. }else echo 'Ошибка!!!';
  286. break;
  287.  
  288. case 'bbkod':
  289.  
  290. include "bbcode.txt";
  291. break;
  292.  
  293. case 'smiles':
  294.  
  295. include "smile.txt";
  296. break;
  297.  
  298. case 'add':
  299.  
  300. $id = $_GET['id'];
  301.  
  302. echo'<form action="forum.php'.$_zapros.'mode=addok&id='.$id.'" method="POST"/>
  303. Тема:<br/>
  304. <input type="text" name="name" maxlength="30"/><br/>
  305. Сообщение:<br/>
  306. <textarea cols="30" rows="5" name="text" maxlength="5000"></textarea><br/>
  307. <input type="Submit" value="Отправить"/>';
  308. break;
  309.  
  310. case 'addok':
  311.  
  312. $id=$_GET['id'];
  313. $time = date("d.m.y - H:i:s");
  314. $name = htmlspecialchars($_POST['name']);
  315. $text = htmlspecialchars($_POST['text']);
  316.  
  317. if($name){
  318. if($text){
  319. mysql_query("INSERT INTO `".prefix."themes` (`id_forum`,`name`,`login`,`time`,`last_time`,`type`) VALUES ('".$id."','".$name."','".$_USER['login']."','".$time."','".time()."','0');");
  320. $pik=mysql_query("SELECT * FROM `".prefix."themes` WHERE `id_forum`='".$id."' and `name`='".$name."'");
  321. $pika=mysql_fetch_array($pik);
  322. $idi=$pika['id'];
  323. mysql_query("INSERT INTO `".prefix."posts` (`id_theme`,`id_forum`,`login`,`text`,`time`) VALUES ('".$idi."','".$id."','".$_USER['login']."','".$text."','".$time."');");
  324. header("Location: forum.php".$_zapros."&mode=posts&id=".$id."&ida=".$idi);
  325. }else echo'Сообщение введено не верно!';
  326. }else echo'Название темы введено не верно!';
  327. break;
  328.  
  329. case 'del':
  330.  
  331. $type=$_GET['type'];
  332. $id=$_GET['id'];
  333. If ($_USER['admin'] || $_USER['moder']){
  334.  
  335. if($type==1)
  336. {
  337. mysql_query("DELETE FROM `".prefix."forums` WHERE `id`='".$id."'");
  338. echo 'Категория удалена!';
  339. }
  340. if($type==2)
  341. {
  342. mysql_query("DELETE FROM `".prefix."themes` WHERE `id`='".$id."'");
  343. mysql_query("DELETE FROM `".prefix."posts` WHERE `id_theme`='".$id."'");
  344. echo 'Тема удалена!';
  345. }
  346. if($type==3)
  347. {
  348. mysql_query("DELETE FROM `".prefix."posts` WHERE `id`='".$id."'");
  349. echo 'Пост удален!';
  350. }
  351. if($type==4)
  352. {
  353. mysql_query("UPDATE `".prefix."themes` SET `type`='1' WHERE `id`='".$id."'");
  354. echo 'Тема закреплена!';
  355. }
  356. if($type==5)
  357. {
  358. mysql_query("UPDATE `".prefix."themes` SET `type`='0' WHERE `id`='".$id."'");
  359. echo 'Тема откреплена!';
  360. }
  361. if($type==6)
  362. {
  363. mysql_query("UPDATE `".prefix."themes` SET `type`='2' WHERE `id`='".$id."'");
  364. echo 'Тема закрыта!';
  365. }
  366. if($type==7)
  367. {
  368. mysql_query("UPDATE `".prefix."themes` SET `type`='0' WHERE `id`='".$id."'");
  369. echo'Тема открыта!';
  370. }
  371. if($type==8)
  372. {
  373. echo'<form action="forum.php'.$_zapros.'mode=del&type=9&id='.$id.'" method="POST"/>
  374. Новое название:<br/>
  375. <input type="text" name="name"/><br/>
  376. <input type="Submit" value="Изменить"/></font>';
  377. }
  378. if($type==9)
  379. {
  380. mysql_query("UPDATE `".prefix."forums` SET `name`='".$_POST['name']."' WHERE `id`='".$_GET['id']."'");
  381. echo'Категория изменена';
  382. }
  383. }else echo'Ошибка!!! Вы не администратор!';
  384. break;
  385.  
  386. case 'add_kat':
  387. If ($_USER['admin']){
  388. echo'
  389. <form action="forum.php'.$_zapros.'mode=add_katok" method="POST"/>
  390. Название:<br/>
  391. <input type="text" name="name"/><br/>
  392. <input type="Submit" value="Добавить"/>';
  393. }
  394. break;
  395.  
  396. case 'add_katok':
  397. $name=$_POST['name'];
  398. mysql_query("INSERT INTO `".prefix."forums` (`name`) VALUES ('".$name."')");
  399. echo'Категория добавлена!';
  400. break;
  401. }
  402.  
  403. include "header/end.inc.php";
  404. ?>