Просмотр файла include/stena.php

Размер файла: 12.71Kb
  1. <?php
  2. if($authorize) {
  3. if(empty($_GET['stenid']))
  4. {
  5. $sten = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE username='".$username."'"));
  6. $stenid=$sten['id'];
  7. } else {
  8. $stenid=intval($_GET['stenid']);
  9. }
  10. switch($_GET['d'])
  11. {
  12. default:
  13. $num = mysql_query("SELECT * FROM `users` WHERE `id`='$stenid'");
  14. $array = mysql_fetch_array($num);
  15. $usersten=$array['username'];
  16. if($version == "xhtml")
  17. {
  18. $thisPageSize = 1500;
  19. }
  20. else
  21. {
  22. $thisPageSize = 1500;
  23. }
  24. if($version == "wml")
  25. {
  26. header("content-type: text/vnd.wap.wml; charset=utf-8");
  27. header("Cache-Control: no-cache");
  28. echo(doctype("Личная стена ".$usersten).$tag);
  29. echo('<a href="./?p=29&amp;d=1&amp;stenid='.$stenid.'&amp;sid='.$sid.'&amp;v=wml">Написать на стене</a><br />
  30. <a href="./?p=29&amp;v=wml&amp;sid='.$sid.'&amp;rnd='.$ref."\">Начало</a><br /><br />\r\n");
  31. if( isset($_GET['clear']) AND ($username == $usersten))
  32. {
  33. echo("Вы уверены, что хотите удалить все сообщения?\r\n");
  34. echo("<a href='./?p=29&amp;stenid=".$stenid."&amp;d=4&amp;v=wml&amp;sid=$sid'>Да</a> | <a href='./?p=29&amp;stenid=".$stenid."&amp;v=wml&amp;sid=$sid'>Нет</a><br />\r\n");
  35. }
  36. $sql = "SELECT *
  37. FROM stena
  38. WHERE stenid = '".$stenid."'
  39. ORDER BY `id` DESC ";
  40. $count = mysql_num_rows(mysql_query($sql));
  41. $start = intval($_GET['s']);
  42. if(!empty($start))
  43. {
  44. $limit = "LIMIT ".$start.", ".abs($count - $start);
  45. $int = $start;
  46. }
  47. else
  48. {
  49. $int = 0;
  50. }
  51. $sql .= $limit;
  52. $query = mysql_query($sql);
  53. while($mess = mysql_fetch_assoc($query))
  54. {
  55. static $s;
  56. echo(date("d.m H:i", $mess['time']).']');
  57. if($mess['mod'] == "o" AND preg_match("|^$username|iu", $mess['name']))
  58. {
  59. echo("<b>Я</b>");
  60. if($username == $usersten OR ($status == "moderator" or $status == "admin")){
  61. echo(' <a href="./?p=29&amp;id='.$mess['id'].'&amp;v='.$version.'&amp;sid='.$sid."&amp;d=5\">X</a>\r\n");
  62. }
  63. echo("<br />\r\n");
  64. }
  65. else
  66. {
  67. echo("<b><a href=\"./?p=24&amp;v=wml&amp;sid=".$sid."&amp;d=1&amp;uid=".username2id($mess['name'])."\">".$mess['name']."</a></b>");
  68. if($username == $usersten OR ($status == "moderator" or $status == "admin")){
  69. echo(' <a href="./?p=29&amp;id='.$mess['id'].'&amp;v='.$version.'&amp;sid='.$sid."&amp;d=5\">X</a>\r\n");
  70. }
  71. echo("<br />\r\n");
  72. }
  73. echo(nl2br($mess['mess'])."<br />\r\n");
  74. $int++;
  75. $s += strlen($mess['time'].$mess['name'].$mess['name'].$mess['mess']);
  76. if($s + $thisPageSize + (110 * abs($int - $start)) > $pageSize)
  77. {
  78. if($int != $count)
  79. {
  80. $next = $int;
  81. }
  82. break;
  83. }
  84. }
  85. echo("- - - - <br />\r\n");
  86. if(!empty($next))
  87. {
  88. echo("<a accesskey=\"3\" href=\"" . $_SERVER['PHP_SELF'] . "?p=29&amp;stenid=".$stenid."&amp;v=wml&amp;sid=".$sid."&amp;s=".$next."\">Дальше...(3)</a><br />\r\n");
  89. }
  90. if($usersten == $username){
  91. echo("<a href='./?p=29&amp;stenid=".$stenid."&amp;sid=$sid&amp;v=wml&amp;clear=1'>Очистить личную стену</a><br />\r\n");
  92. }
  93. echo("<a href=\"./?p=0&amp;v=wml&amp;sid=".$sid."\" accesskey=\"1\">В форум (1)</a>\r\n");
  94. echo($tagC."</p></card></wml>");
  95. } elseif($version == "xhtml")
  96. {
  97. header("Content-type: text/html; charset=utf-8");
  98. header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT");
  99. header("Cache-Control: no-cache, must-relative");
  100. echo('<html>
  101. <head>
  102. <title>Личная стена '.$usersten.'</title>
  103. </head>
  104. <body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
  105. <table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
  106. <tr><td align="center" bgcolor="'.$style['title'].'">
  107. <font color="#FFFFFF"><b>Личная стена '.$usersten.'</b></font>
  108. </td></tr>
  109. <tr><td bgcolor="'.$style['bottom'].'">'.$tag.'
  110. <a href="./?p=29&amp;d=1&amp;stenid='.$stenid.'&amp;v=xhtml&amp;sid='.$sid.'">Написать на стене</a><br />
  111. <a href="./?p=29&amp;stenid='.$stenid.'&amp;v=xhtml&amp;sid='.$sid.'&amp;rnd='.$ref.'">Начало</a><br />');
  112. if( isset($_GET['clear']) AND $usersten == $username)
  113. {
  114. echo("Вы уверены, что хотите удалить все сообщения?\r\n");
  115. echo("<a href='./?p=29&amp;stenid=".$stenid."&amp;d=4&amp;v=html&amp;sid=$sid'>Да</a> | <a href='./?p=29&amp;stenid=".$stenid."&amp;v=html&amp;sid=$sid'>Нет</a><br />\r\n");
  116. }
  117. echo($tagC.'</td></tr>
  118. <tr bgcolor="'.$style['text'].'"><td>'.$tag);
  119. $sql = "SELECT *
  120. FROM stena
  121. WHERE stenid = '".$stenid."'
  122. ORDER BY `id` DESC ";
  123. $count = mysql_num_rows(mysql_query($sql));
  124. $start = intval($_GET['s']);
  125. if(!empty($start))
  126. {
  127. $limit = "LIMIT ".$start.", ".abs($count - $start);
  128. $int = $start;
  129. }
  130. else
  131. {
  132. $int = 0;
  133. }
  134. $sql .= $limit;
  135. $query = mysql_query($sql);
  136. while($mess = mysql_fetch_assoc($query))
  137. {
  138. static $s;
  139. echo(date("d.m H:i", $mess['time']).']');
  140. if($mess['mod'] == "o" AND preg_match("|^$username|iu", $mess['name']))
  141. {
  142. echo("<b>Я</b>");
  143. if($username == $usersten OR ($status == "moderator" or $status == "admin")){
  144. echo(' <a href="./?p=29&amp;id='.$mess['id'].'&amp;v='.$version.'&amp;sid='.$sid."&amp;d=5\">X</a>\r\n");
  145. }
  146. echo("<br />\r\n");
  147. }
  148. else
  149. {
  150. echo("<b><a href=\"./?p=24&amp;v=xhtml&amp;sid=".$sid."&amp;d=1&amp;uid=".username2id($mess['name'])."\">".$mess['name']."</a></b>");
  151. if($username == $usersten OR ($status == "moderator" or $status == "admin")){
  152. echo(' <a href="./?p=29&amp;id='.$mess['id'].'&amp;v='.$version.'&amp;sid='.$sid."&amp;d=5\">X</a>\r\n");
  153. }
  154. echo("<br />\r\n");
  155. }
  156. echo(nl2br($mess['mess'])."<br />\r\n");
  157. $int++;
  158. $s += strlen($mess['time'].$mess['name'].$mess['name'].$mess['mess']);
  159. if($s + $thisPageSize + (110 * abs($int - $start)) > $pageSize)
  160. {
  161. if($int != $count)
  162. {
  163. $next = $int;
  164. }
  165. break;
  166. }
  167. }
  168. echo($tagC.'</td></tr>
  169. <tr bgcolor="'.$style['bottom'].'"><td>'.$tag);
  170. if(!empty($next))
  171. {
  172. echo("<a href=\"" . $_SERVER['PHP_SELF'] . "?p=29&amp;stenid=".$stenid."&amp;v=xhtml&amp;sid=".$sid."&amp;s=".$next."\">Дальше...</a><br />\r\n");
  173. }
  174. if($usersten == $username){
  175. echo("<a href='./?p=29&amp;stenid=".$stenid."&amp;sid=$sid&amp;v=xhtml&amp;clear=1'>Очистить личную стену</a><br />\r\n");
  176. }
  177. echo("<a href=\"./?p=0&amp;v=xhtml&amp;sid=".$sid."\">В форум</a>\r\n");
  178. echo($tagC.'</td></tr></table>
  179. </body></html>');
  180. }
  181. if($usersten == $username){
  182. mysql_query("UPDATE stena SET s=0 WHERE stenid='".$stenid."'");
  183. }
  184. break;
  185. case 1:
  186. $sten = mysql_query("SELECT * FROM users WHERE id = '".$stenid."'");
  187. $stenrow = mysql_fetch_array($sten);
  188. $usersten=$stenrow['username'];
  189. if($version == "wml")
  190. {
  191. header("content-type: text/vnd.wap.wml; charset=utf-8");
  192. header("Cache-Control: no-cache");
  193. echo(doctype("Личная стена ".$usersten).$tag);
  194.  
  195. echo("<br />" . $tag."Сообщение:".$tagC." <input type=\"text\" name=\"mess\" /><br />
  196. <anchor>[Написать на личной стене]
  197. <go href=\"./?p=29&amp;stenid=".$stenid."&amp;v=wml&amp;sid=".$sid."&amp;d=2\" method=\"post\">
  198. <postfield name=\"mess\" value=\"$(mess)\" />
  199. <postfield name=\"stenid\" value=\"$(stenid)".$stenid."\" />
  200. </go></anchor><br />
  201. ".$tag."- - - - <br />
  202. <anchor>Назад<prev /></anchor><br />
  203. <a href=\"./?p=29&amp;stenid=".$stenid."&amp;v=wml&amp;sid=".$sid."&amp;rnd=".$ref."\">Стена</a>
  204. ".$tagC."</p>
  205. </card></wml>");
  206. } elseif($version == "xhtml")
  207. {
  208. header("Content-type: text/html; charset=utf-8");
  209. header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT");
  210. header("Cache-Control: no-cache, must-relative");
  211. echo('<html>
  212. <head>
  213. <title>Личная стена '.$usersten.'</title>
  214. </head>
  215. <body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
  216. <form action="./?p=29&amp;stenid='.$stenid.'&amp;v=xhtml&amp;sid='.$sid.'&amp;d=2" method="post">
  217. <table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
  218. <tr bgcolor="'.$style['title'].'"><td align="center" colspan="2">
  219. <font color="#FFFFFF"><b>Личная стена '.$usersten.'</b></font>
  220. <tr bgcolor="'.$style['bottom'].'">
  221. <td colspan="2">');
  222. echo("<tr bgcolor=\"".$style['text']."\"><td>
  223. ".$tag."Сообщение:".$tagC."</td><td><textarea name=\"mess\" cols=\"30\" rows=\"5\"></textarea></td></tr>
  224. <tr bgcolor=\"".$style['text']."\"><td align=\"center\" colspan=\"2\">
  225. ".$hidden."
  226. <input type=\"submit\" value=\"Написать на личной стене\" /></td></tr>
  227. <tr bgcolor=\"".$style['bottom']."\"><td colspan=\"2\">
  228. $tag");
  229. echo("
  230. <a href='javascript:history.back(1)'>Назад</a><br/>
  231. <a href=\"./?p=29&amp;stenid=".$stenid."&amp;v=xhtml&amp;sid=".$sid."&amp;rnd=".$ref."\">Стена</a> $tagC
  232. </td></tr></table>
  233. </form>
  234. </body></html>");
  235. }
  236. break;
  237. case 2:
  238. $mess = $_POST['mess'];
  239. if($transl == "on")
  240. {
  241. $mess = translate($mess);
  242. }
  243. $mess = preg_replace("|[\r\n]+|", " \r\n", $mess);
  244. $mess = preg_replace("|[\n]+|", "\n", $mess);
  245. $mess = sql(htmlspecialchars(trim(cutString($mess, 1024))));
  246. $mess = preg_replace_callback("|&lt;(\d{1,20})&gt;|", "smile", $mess);
  247. if($status == "admin" or $starus == "moderator")
  248. {
  249. $mess = preg_replace("|\[url=(.*)\](.*)\[/url\]|is", "<a href=\"go/?\\1\">\\2</a>", $mess);
  250. $mess = preg_replace("|\[b\](.*)\[/b\]|i", "<b>\\1</b>", $mess);
  251. $mess = preg_replace("|\[i\](.*)\[/i\]|i", "<i>\\1</i>", $mess);
  252. }
  253. if(strpos($mess, "http://") !== false)
  254. {
  255. if($status == "admin" or $starus == "moderator")
  256. {
  257. $mess = preg_replace("|\[url=(.*)\](.*)\[/url\]|is", "<a href=\"go/?\\1\">\\2</a>", $mess);
  258. }
  259. $mess = preg_replace("|(http://[^\s]+)|i", "<a href=\"go/?\\1\">\\1</a>", $mess);
  260. }
  261. ////////////////////////////////////////////////////////Антифлуд
  262. $R = mysql_query("SELECT * FROM `stena`
  263. WHERE `stenid`='".$stenid."'");
  264. $aR = mysql_fetch_array($R);
  265. $messR=$aR['mess'];
  266. ////////////////////////////////////////////////////////
  267. if($status == "admin") $ip = "127.0.0.1"; else $ip = empty($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['REMOTE_ADDR'] : $_SERVER['HTTP_X_FORWARDED_FOR'] ;
  268. $ip = htmlspecialchars(sql($ip));
  269. if($status == "admin") $user = "Admin"; else $user = htmlspecialchars(sql($_SERVER['HTTP_USER_AGENT']));
  270. if(ban($username, $user, $ip))
  271. {
  272. if($version == "wml")
  273. {
  274. header('Content-type: text/vnd.wap.wml; charset=utf-8');
  275. header("Cache-Control: no-cache");
  276. echo(doctype("Ошибка").$tag.'
  277. Ошибка! Вы заблокированы модератором '.$modername.'. <br />
  278. Причина: '.$banmess.'! <br />
  279. -
  280. <a href="'.$_SERVER['HTTP_REFERER'].'">Назад</a><br />
  281. <a href="./?p=0&amp;v=wml&amp;sid='.$sid.'">Форумы</a>
  282. '.$tagC.'</p></card></wml>');
  283. } elseif($version == "xhtml")
  284. {
  285. header("Content-type: text/html; charset=utf-8");
  286. header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT");
  287. header("Cache-Control: no-cache, must-relative");
  288. echo('<html>
  289. <head>
  290. <title>Ошибка</title>
  291. </head>
  292. <body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
  293. <table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
  294. <tr align="center" bgcolor="'.$style['title'].'"><td colspan="2">
  295. <font color="#FFFFFF"><b>Ошибка</b></font>
  296. <tr bgcolor="'.$style['text'].'"><td colspan="2">'.$tag.'Вы заблокированы модератором '.$modername.'</td></tr>
  297. <tr bgcolor="'.$style['text'].'"><td>'.$tag.'Причина:'.$tagC.'</td><td>'.$tag.$banmess.$tagC.'</td></tr>
  298. <tr bgcolor="'.$style['bottom'].'"><td colspan="2">'.$tag.'
  299. <a href="./?p=0&amp;v=xhtml&amp;sid='.$sid.'">Форумы</a>
  300. '.$tagC.'</td></tr></table>
  301. </body></html>');
  302. }
  303. }
  304. else
  305. {
  306. if(!empty($_POST['mess']) && strtolower($mess) != strtolower($messR))
  307. {
  308. if(mysql_result(mysql_query("SELECT COUNT(*) FROM stena WHERE name='".$username."'"), 0) > 30)
  309. {
  310. mysql_query("DELETE FROM stena WHERE name='".$username."' ORDER BY id LIMIT 1");
  311. }
  312.  
  313. mysql_query("INSERT INTO stena VALUES(0, '".$mess."', '".$stenid."', '".$username."', ".time().", '1')");
  314.  
  315. }
  316. header("Location: ".$_SERVER['PHP_SELF'].'?p=29&stenid='.$stenid.'&v='.$version.'&sid='.$sid.'&rnd='.$ref);
  317. }
  318. break;
  319. case 4:
  320. $num = mysql_query("SELECT * FROM `users` WHERE `id`='$stenid'");
  321. $array = mysql_fetch_array($num);
  322. $usersten=$array['username'];
  323. if($username == $usersten){
  324. mysql_query("DELETE FROM stena WHERE stenid = '$stenid'");
  325. }
  326. header("Location: ".$_SERVER['PHP_SELF'].'?p=29&stenid='.$stenid.'&v='.$version.'&sid='.$sid.'&rnd='.$ref);
  327. break;
  328. case 5:
  329. if($username == $usersten OR ($status == "moderator" or $status == "admin")){
  330. if(!mysql_result(mysql_query("SELECT COUNT(*) FROM `stena` WHERE `id`=".intval($_GET['id'])), 0))
  331. {
  332. header("Location: ".$forumdir.'p=29&v='.$version.'&sid='.$sid.'&stenid='.$_GET['stenid'].'&s='.$_GET['s']);
  333. } else
  334. {
  335. mysql_query("DELETE FROM `stena` WHERE `id`=".intval($_GET['id']));
  336. header("Location: ".$forumdir.'p=29&v='.$version.'&sid='.$sid.'&stenid='.$_GET['stenid'].'&s='.$_GET['s']);
  337. }
  338. }
  339. break;
  340. }
  341. }
  342. ?>