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

Размер файла: 11.72Kb
  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. If (!isset($_GET['log'])) define("anybody","true");
  8. include "header/enter.inc.php";
  9.  
  10. @mysql_query("update `".prefix."users` set `mesto`='В гостевой' where `id` = '".$_USER['id']."'");
  11. If (!isset($_GET['mode']) || !ereg("^[a-z0-9_-]{1,15}$",$_GET['mode'])) $mode=false; else $mode=$_GET['mode'];
  12.  
  13. switch ($mode){
  14.  
  15. case 'admin':
  16.  
  17. If ($_USER['admin'] || $_USER['moder']){
  18.  
  19. If (!isset($_GET['smode']) || !ereg("^[a-z0-9_-]{1,15}$",$_GET['smode'])) $smode='adminka'; else $smode=$_GET['smode'];
  20. echo 'Админ-панель гостевой книги<br/>---<br/>';
  21.  
  22. switch($smode){
  23. case 'fdelu':
  24. If (
  25. (!isset($_GET['user']) || !$click_club->is_login($_GET['user']))
  26. &&
  27. (!isset($_POST['user']) || !$click_club->is_login($_POST['user']))
  28. ){
  29. echo 'Пользователь не выбран или логин введён неверно!';
  30. break;
  31. }
  32.  
  33. If (isset($_GET['user'])) $login=$_GET['user']; else $login=$_POST['user'];
  34. If (!isset($_GET['ok'])){
  35. echo 'Вы точно хотите удалить все сообщения пользователя <u>'.$login.'</u>?<br/>
  36. <a href="'.$_zapros.'mode=admin">Нет</a> / <a href="'.$_zapros.'mode=admin&amp;smode=fdelu&amp;user='.$login.'&amp;ok=ok">Да</a>';
  37. break;
  38. }
  39. //удаляем
  40. $result=@mysql_query("DELETE FROM `".prefix."guest` WHERE `who`='".$login."'");
  41. If (!$result){
  42. echo 'Ошибка запроса к бд...';
  43. break;
  44. }
  45. echo 'Все сообщения пользователя '.$login.' удалены!';
  46. break;
  47.  
  48. case 'delu':
  49. echo 'Удалить все сообщения пользователя:<br/>
  50. <form method="post" action="'.$_zapros.'mode=admin&amp;smode=fdelu">
  51. <input type="text" name="login" maxlength="'.lenght_login.'" value=""/><br/>
  52. <input value="OK" type="submit"/></form>
  53. ';
  54. break;
  55.  
  56. case 'delall':
  57. If (!isset($_GET['ok'])){
  58. echo 'Вы точно хотите удалить все сообщения в гостевой книге?<br/>
  59. <a href="'.$_zapros.'mode=admin">Нет</a> / <a href="'.$_zapros.'mode=admin&amp;smode=delall&amp;ok=ok">Да</a>';
  60. break;
  61. }
  62. //удаляем
  63. $result=@mysql_query("DELETE FROM `".prefix."guest`");
  64. If (!$result){
  65. echo 'Ошибка запроса к бд...';
  66. break;
  67. }
  68. echo 'Все сообщения удалены!';
  69. break;
  70.  
  71. case 'adminka':
  72. default:
  73. echo '&#187;<a href="'.$_zapros.'mode=admin&amp;smode=delu">Удалить все сообщения пользователя</a><br/>';
  74. echo '&#187;<a href="'.$_zapros.'mode=admin&amp;smode=delall">Удалить все сообщения в гостевой книге</a>';
  75. break;
  76. }
  77. break;
  78. }
  79. else {
  80. echo 'Вы не администратор!<br/>';
  81. }
  82. break;
  83.  
  84.  
  85. case 'do':
  86. If (!isset($_GET['id']) || !is_numeric($_GET['id'])){
  87. echo 'не задан ID сообщения';
  88. break;
  89. }
  90.  
  91. If ($_USER['admin'] || $_USER['moder']){
  92.  
  93. If (!isset($_GET['smode']) || !ereg("^[a-z0-9_-]{1,15}$",$_GET['smode'])) $smode='info'; else $smode=$_GET['smode'];
  94.  
  95. $id=$_GET['id'];
  96. (int)$id;
  97.  
  98. switch ($smode){
  99. case 'del':
  100. $result=@mysql_query("DELETE FROM `".prefix."guest` WHERE `id`='".$id."'");
  101. If (!$result){
  102. echo 'Ошибка запроса к бд...';
  103. break;
  104. }
  105. header("Location: guest.php".$_zapros);
  106.  
  107. break;
  108.  
  109. case 'fdel':
  110. $result=@mysql_query("SELECT `who` FROM `".prefix."guest` WHERE `id`='".$id."'");
  111. If (!$result){
  112. echo 'Ошибка запроса к бд...';
  113. break;
  114. }
  115.  
  116. If (mysql_num_rows($result)!=1){
  117. echo 'Сообщение не найдено';
  118. break;
  119. }
  120. $login=mysql_result($result,0,'who');
  121. echo 'Вы точно хотите удалить все сообщения пользователя <u>'.$login.'</u>?<br/>
  122. <a href="'.$_zapros.'">Нет</a> / <a href="'.$_zapros.'mode=admin&amp;smode=fdelu&amp;user='.$login.'&amp;ok=ok">Да</a>';
  123.  
  124. break;
  125.  
  126. case 'ans':
  127. $result=@mysql_query("SELECT * FROM `".prefix."guest` WHERE `id`='".$id."'");
  128. If (!$result){
  129. echo 'Ошибка запроса к бд...';
  130. break;
  131. }
  132.  
  133. If (mysql_num_rows($result)!=1){
  134. echo 'Сообщение не найдено';
  135. break;
  136. }
  137.  
  138.  
  139. $ans=mysql_result($result,0,'answer');
  140.  
  141. echo 'Текст:<br/>
  142. <form method="post" action="'.$_zapros.'mode=do&amp;smode=ansok&amp;id='.$id.'">
  143. <input type="text" name="text" maxlength="'.lenght_text.'" value="'.$ans.'"/><br/>
  144. <input value="OK" type="submit"/></form>
  145. ';
  146. break;
  147.  
  148. case 'ansok':
  149.  
  150. If (!isset($_POST['text'])) {
  151. echo 'Ответ не введён!';
  152. break;
  153. }
  154. $text = mysql_real_escape_string(htmlspecialchars($_POST['text']));
  155. $strlen=strlen($text);
  156.  
  157. If ($strlen<min_text || $strlen>lenght_text){
  158. echo 'Сообщение слишком длинное/короткое';
  159. break;
  160. }
  161. $result = mysql_query("UPDATE `".prefix."guest` SET `answer`='".$text."' , `nans`='".$_USER['login']."' WHERE `id`='".$id."'");
  162. If (!$result){
  163. echo 'Ошибка запроса к бд...';
  164. break;
  165. }
  166. echo 'Ответ добавлен!';
  167. break;
  168.  
  169. case 'red':
  170.  
  171. $result = mysql_query("SELECT * FROM `".prefix."guest` WHERE `id`='".$id."'");
  172. If (!$result){
  173. echo 'Ошибка запроса к бд...';
  174. break;
  175. }
  176.  
  177. If (mysql_num_rows($result)!=1){
  178. echo 'Сообщение не найдено';
  179. break;
  180. }
  181.  
  182. $ans=mysql_result($result,0,'text');
  183.  
  184. echo 'Текст:<br/>
  185. <form method="post" action="'.$_zapros.'mode=do&amp;smode=redok&amp;id='.$id.'">
  186. <textarea cols="30" rows="5" name="text" maxlength="'.lenght_text.'">'.$ans.'</textarea><br/>
  187. <input value="OK" type="submit"/></form>';
  188. break;
  189.  
  190. case 'redok':
  191.  
  192. If (!isset($_POST['text'])) {
  193. echo 'Сообщения не введено!';
  194. break;
  195. }
  196. $text = mysql_real_escape_string(htmlspecialchars($_POST['text']));
  197. $strlen=strlen($text);
  198.  
  199. If ($strlen<min_text || $strlen>lenght_text){
  200. echo 'Сообщение слишком длинное/короткое';
  201. break;
  202. }
  203. $result = mysql_query("UPDATE `".prefix."guest` SET `text`='".$text."', `izmts`='".time()."', `izmkol`=`izmkol`+1, `izmwho`='".$_USER['login']."' WHERE `id`='".$id."'");
  204. If (!$result){
  205. echo 'Ошибка запроса к бд...';
  206. break;
  207. }
  208. header("Location: guest.php".$_zapros);
  209. break;
  210.  
  211. case 'info':
  212. default:
  213. $result=@mysql_query("SELECT * FROM `".prefix."guest` WHERE `id`='".$id."'");
  214. If (!$result){
  215. echo 'Ошибка запроса к бд...';
  216. break;
  217. }
  218.  
  219. If (mysql_num_rows($result)!=1){
  220. echo 'Сообщение не найдено';
  221. break;
  222. }
  223.  
  224. echo '<div class="header_rek"><b>Общая информация о сообщении</b></div><br/>
  225. ID сообщения: <b>'.mysql_result($result,0,'id').'</b><br/>
  226. Текст сообщения: <b>'.mysql_result($result,0,'text').'</b><br/>
  227. Сообщение написано: <b>'.date("d.m.Y H:i:s",mysql_result($result,0,'ts')).'</b><br/>
  228. Написал: <b>'.mysql_result($result,0,'who').'</b>
  229. <font color="white"><hr></font>
  230. &#187;<a href="'.$_zapros.'mode=do&amp;smode=red&amp;id='.$id.'">Изменить</a><br/>
  231. &#187;<a href="'.$_zapros.'mode=do&amp;smode=ans&amp;id='.$id.'">Ответить</a><br/>
  232. &#187;<a href="'.$_zapros.'mode=do&amp;smode=del&amp;id='.$id.'">Удалить</a><br/>
  233. &#187;<a href="'.$_zapros.'mode=do&amp;smode=fdel&amp;id='.$id.'">Удалить ВСЕ сообщения этого пользователя</a>';
  234. break;
  235. }
  236. break;
  237. }
  238. else {
  239. echo 'Вы не администратор!<br/>';
  240. }
  241. break;
  242.  
  243. case 'write':
  244.  
  245. If (!$_enter){
  246. echo 'Для того чтобы писать сообщения, вы должны войти в систему!<br/>';
  247. break;
  248. }
  249.  
  250. If (!isset($_POST['text'])) {
  251. echo 'Текст:<br/>
  252. <form method="post" action="'.$_zapros.'mode=write">
  253. <textarea cols="30" rows="5" name="text" maxlength="'.lenght_text.'"></textarea><br/>
  254. <input value="Написать" type="submit"/></form>';
  255. break;
  256. }
  257.  
  258. $text = htmlspecialchars(trim(mysql_real_escape_string($_POST['text'])));
  259. $strlen = strlen($text);
  260.  
  261. If ($strlen<min_text || $strlen>lenght_text){
  262. echo 'Сообщение слишком длинное/короткое';
  263. break;
  264. }
  265.  
  266. $result=@mysql_query("INSERT into `".prefix."guest`
  267. (`who`,`text`,`ts`,`ua`)
  268. values
  269. ('".$_USER['login']."','".$text."','".time()."','".short_agent."')
  270. ");
  271. If (!$result){
  272. echo 'Ошибка запроса к бд...';
  273. break;
  274. }
  275. header("Location: guest.php".$_zapros);
  276. break;
  277.  
  278. case 'bbkod':
  279.  
  280. include "bbcode.txt";
  281. break;
  282.  
  283. case 'smiles':
  284.  
  285. include "smile.txt";
  286. break;
  287.  
  288. case 'izm':
  289. If (!isset($_GET['id']) || !is_numeric($_GET['id'])){
  290. echo 'Не задан ID сообщения';
  291. break;
  292. }
  293.  
  294. If (!isset($_GET['wmode']) || !ereg("^[a-z0-9_-]{1,15}$",$_GET['wmode'])) $wmode='red'; else $wmode=$_GET['wmode'];
  295.  
  296. $id=$_GET['id'];
  297. (int)$id;
  298.  
  299. switch ($wmode){
  300.  
  301. case 'red':
  302.  
  303. $result = mysql_query("SELECT * FROM `".prefix."guest` WHERE `id`='".$id."' && `who`='".$_USER['login']."'");
  304. If (!$result){
  305. echo 'Ошибка запроса к бд...';
  306. break;
  307. }
  308.  
  309. If (mysql_num_rows($result)!=1){
  310. echo 'Сообщение не найдено';
  311. break;
  312. }
  313.  
  314. $ans=mysql_result($result,0,'text');
  315.  
  316. echo 'Текст:<br/>
  317. <form method="post" action="'.$_zapros.'mode=izm&amp;wmode=redok&amp;id='.$id.'">
  318. <textarea cols="30" rows="5" name="text" maxlength="'.lenght_text.'">'.$ans.'</textarea><br/>
  319. <input value="OK" type="submit"/></form>';
  320. break;
  321.  
  322. case 'redok':
  323.  
  324. If (!isset($_POST['text'])) {
  325. echo 'Сообщения не введено!';
  326. break;
  327. }
  328. $text = mysql_real_escape_string(htmlspecialchars($_POST['text']));
  329. $strlen=strlen($text);
  330.  
  331. If ($strlen<min_text || $strlen>lenght_text){
  332. echo 'Сообщение слишком длинное/короткое';
  333. break;
  334. }
  335. $result = mysql_query("UPDATE `".prefix."guest` SET `text`='".$text."', `izmts`='".time()."', `izmkol`=`izmkol`+1, `izmwho`='".$_USER['login']."' WHERE `id`='".$id."' && `who`='".$_USER['login']."'");
  336. If (!$result){
  337. echo 'Ошибка запроса к бд...';
  338. break;
  339. }
  340. header("Location: guest.php".$_zapros);
  341. break;
  342. }
  343. break;
  344.  
  345. case false:
  346. default:
  347.  
  348. echo '<div class="header_rek"><b>Гостевая книга</b></div>
  349. <a href="guest.php'.$_zapros.'mode=bbkod">BB Код</a> | <a href="guest.php'.$_zapros.'mode=smiles">Смайлы</a><br/><br/>
  350. <a href="'.$_zapros.'mode=write"><b>Добавить</b></a><br/>
  351. <font color="white"><hr></font>';
  352.  
  353. If (!isset($_GET['page']) || !is_numeric($_GET['page'])) $page=1; else { $page=$_GET['page']; (int)$page;}
  354. $result = mysql_query("SELECT * FROM `".prefix."guest` ORDER by `ts` desc LIMIT ".(($page-1)*num_best_on_page).",".(num_best_on_page+1));
  355. If (!$result){
  356. echo 'Ошибка запроса к бд...';
  357. break;
  358. }
  359.  
  360. $next=false;
  361. $num=mysql_num_rows($result);
  362. If ($num>0){
  363. If ($num<=num_best_on_page) $read=$num; else {
  364. $read=num_best_on_page;
  365. $next=true;
  366. }
  367. for ($i=0;$i<$read;$i++){
  368. $text = mysql_result($result,$i,'text');
  369. $text = bbcode($text);
  370. $text = smile($text);
  371. $text = antilink($text);
  372. $text = stripslashes($text);
  373. $ans = mysql_result($result,$i,'answer');
  374. $ans = bbcode($ans);
  375. $ans = smile($ans);
  376. $ans = stripslashes($ans);
  377. $login = mysql_result($result,$i,'who');
  378. $id = mysql_result($result,$i,'id');
  379. $izmts = mysql_result($result,$i,'izmts');
  380. $izmkol = mysql_result($result,$i,'izmkol');
  381. $izmkto = mysql_result($result,$i,'izmwho');
  382.  
  383. $nif = mysql_query("SELECT `admin`, `moder` FROM `".prefix."users` WHERE `login`='".$login."'");
  384. $zak = mysql_fetch_array($nif);
  385.  
  386. echo '<a href="inf.php'.$_zapros.'&logg='.$login.'"><font color="';
  387.  
  388. if ($zak['admin'] == 1) echo 'red';
  389. if ($zak['moder'] == 1) echo 'blue';
  390. if ($zak['admin'] == 0 && $zak['moder'] == 0) echo 'black';
  391.  
  392. echo '"><b>'.$login.'</b></font></a> '.date("d.m.Y H:i:s",mysql_result($result,$i,'ts'));
  393.  
  394. If ($_USER['login']==$login){
  395. echo '[<a href="'.$_zapros.'mode=izm&amp;wmode=red&amp;id='.$id.'">Редактировать</a>]';
  396. }
  397.  
  398. If ($_USER['admin'] || $_USER['moder']){
  399. echo ' [<a href="'.$_zapros.'mode=do&amp;id='.$id.'">Действия</a>]';
  400. }
  401. echo '<br/>'.$text.'<br/>';
  402.  
  403. If (!is_NULL($izmkto) && $izmkto!=''){
  404. echo '---<br/>
  405. Изм. : <b>'.$izmkol.'</b> раз. Последний раз: <b>'.date("H:i d.m.Y",$izmts).'</b> ник <b>'.$izmkto.'</b><br/>';
  406. }
  407.  
  408. $nans = mysql_result($result,$i,'nans');
  409. If (!is_NULL($ans) && $ans!=''){
  410. echo '<font color="red"><b>'.$nans.'</b></font>: '.$ans.'<br/>';
  411. }
  412. echo '<font color="white"><hr></font>';
  413.  
  414. }
  415. } else echo 'Нет сообщений<br/>';
  416.  
  417. If ($page>1) echo '<a href="'.$_zapros.'mode=read&amp;page='.($page-1).'">Назад</a> ';
  418. If ($next) echo '<a href="'.$_zapros.'mode=read&amp;page='.($page+1).'">Далее</a>';
  419.  
  420. $result=@mysql_query("SELECT `who` FROM `".prefix."guest` ");
  421. If (!$result){
  422. echo 'Ошибка запроса к бд...';
  423. break;
  424. }
  425. echo '<br/>Сообщений: '.mysql_num_rows($result);
  426.  
  427.  
  428. break;
  429. }
  430. If ($_USER['admin'] || $_USER['moder'])
  431. echo '<br/>---<br/>&#187;<a href="'.$_zapros.'mode=admin">Админка гости</a>';
  432.  
  433. include "header/end.inc.php";
  434. ?>