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

Размер файла: 13.58Kb
  1. <?php
  2. if(empty($_POST['q']) and empty($_GET['q']))
  3. {
  4. if($version == "wml")
  5. {
  6. header("Content-type: text/vnd.wap.wml; charset=utf-8");
  7. header("Cache-Control: no-cache");
  8. $sa = intval($_GET['sa']);
  9. if(!$sa)
  10. {
  11. echo(doctype("Поиск").'
  12. '.$tag.'<a href="./?p=20&amp;v='.$version.'&amp;sa=1&amp;sid='.$sid.'">Поиск автора</a>'.$tagC.' <br />
  13. '.$tag.'Что ищем:'.$tagC.' <br />
  14. <input type="text" name="q" /><br />
  15. '.$tag.'Где ищем:'.$tagC.'<br />
  16. <select name="w">
  17. <option value="4">В сообщениях</option>
  18. <option value="3">В названиях тем</option>
  19. </select><br />
  20. '.$tag.'В подфорумах:'.$tagC.'<br />
  21. <select multiple="multiple" name="f">');
  22. $f = mysql_query("SELECT `id`, `name` FROM `forums`");
  23. while($fids = mysql_fetch_array($f))
  24. {
  25. echo('<option value="'.$fids['id'].'">'.$fids['name'].'</option>');
  26. }
  27. echo('</select><br /><input type="checkbox" name="f" value="all"/> Везде<br />
  28. <anchor>[Искать]
  29. <go href="./?p=20&amp;v=wml&amp;sid='.$sid.'" method="get">
  30. <postfield name="q" value="$(q)" />
  31. <postfield name="w" value="$(w)" />
  32. <postfield name="f" value="$(f)" />
  33. <postfield name="l" value="$(l)" />
  34. </go></anchor><br />
  35. '.$tag.'
  36. - - - - <br />
  37. <a href="./?p=0&amp;v=wml&amp;sid='.$sid.'">Форум</a>
  38. '.$tagC.'
  39. </p></card></wml>');
  40. }
  41. else
  42. {
  43. echo(doctype("Поиск автора").'
  44. '.$tag.'Автор:'.$tagC.' <br />
  45. <input type="text" name="q" /><br />
  46. <select name="w">
  47. <option value="2">Автор сообщений</option>
  48. <option value="1">Автор тем</option></select><br />
  49. '.$tag.'В подфорумах:'.$tagC.'<br />
  50. <select multiple="multiple" name="f">');
  51. $f = mysql_query("SELECT `id`, `name` FROM `forums`");
  52. while($fids = mysql_fetch_array($f))
  53. {
  54. echo('<option value="'.$fids['id'].'">'.$fids['name'].'</option>');
  55. }
  56. echo('
  57. </select><br /><input type="checkbox" name="f" value="all"/> Везде<br />
  58. <anchor>[Искать]
  59. <go href="./?p=20&amp;v=wml&amp;sid='.$sid.'" method="get">
  60. <postfield name="q" value="$(q)" />
  61. <postfield name="w" value="$(w)" />
  62. <postfield name="f" value="$(f)" />
  63. <postfield name="l" value="$(l)" />
  64. </go></anchor><br />
  65. '.$tag.'
  66. - - - - <br />
  67. <a href="./?p=0&amp;v=wml&amp;sid='.$sid.'">Форум</a>
  68. '.$tagC.'
  69. </p></card></wml>');
  70. }
  71.  
  72. } elseif($version == "xhtml")
  73. {
  74. header("Content-type: text/html; charset=utf-8");
  75. header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT");
  76. header("Cache-Control: no-cache, must-relative");
  77. $sa = intval($_GET['sa']);
  78. echo('<html>
  79. <head>
  80. <title>');
  81. if(!$sa)
  82. {
  83. echo('Поиск');
  84. }
  85. else
  86. {
  87. echo('Поиск автора');
  88. }
  89. echo('</title>
  90. </head>
  91. <body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
  92. <form action="./?p=20&amp;sid='.$sid.'&amp;v='.$version.'&amp;sa='.$sa.'" method="post">
  93. <table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
  94. <tr><td align="center" bgcolor="'.$style['title'].'" colspan="2">
  95. <font color="#FFFFFF">');
  96.  
  97. if(!$sa)
  98. {
  99. echo('<b>Поиск</b>');
  100. }
  101. else
  102. {
  103. echo('<b>Поиск автора</b>');
  104. }
  105. echo('
  106. </font>
  107. </td></tr>
  108. <tr><td bgcolor="'.$style['bottom'].'" colspan="2">');
  109.  
  110. if($sa!=1)
  111. {
  112. echo('<a href="./?p=20&amp;v='.$version.'&amp;sa=1&amp;sid='.$sid.'">Поиск автора</a><br />');
  113. }
  114. echo('</td></tr>');
  115. if($sa==1)
  116. {
  117. echo('
  118. <tr bgcolor="'.$style['text'].'"><td>
  119. '.$tag.'Автор:'.$tagC.'</td><td><input type="text" name="q" /><br /><select name="w">
  120. <option value="2">Автор сообщений</option>
  121. <option value="1">Автор тем</option></select></td></tr>
  122. ');
  123. }
  124. if(!$sa)
  125. {
  126. echo('
  127. <tr bgcolor="'.$style['text'].'"><td>
  128. '.$tag.'Что ищем:'.$tagC.'</td><td><input type="text" name="q" /></td></tr>
  129. <tr bgcolor="'.$style['text'].'"><td>
  130. '.$tag.'Где ищем:'.$tagC.'</td><td>
  131. <select name="w">
  132. <option value="4">В сообщениях</option>
  133. <option value="3">В названиях тем</option>
  134. </select></td></tr>');
  135. }
  136. echo('
  137. <tr bgcolor="'.$style['text'].'"><td>
  138. '.$tag.'В подфорумах:'.$tagC.'</td><td>
  139. <select multiple="multiple" name="f">');
  140. $f = mysql_query("SELECT `id`, `name` FROM `forums`");
  141. while($fids = mysql_fetch_array($f))
  142. {
  143. echo('<option value="'.$fids['id'].'">'.$fids['name'].'</option>');
  144. }
  145. echo('</select></td></tr>
  146. ');
  147. if(!$sa)
  148. {
  149. echo('
  150. <tr bgcolor="'.$style['text'].'"><td>
  151. '.$tag.'Искать слова:'.$tagC.'</td><td>
  152. <select name="l">
  153. <option value="and">все</option>
  154. <option value="or">любые</option>
  155. </select>
  156. </td></tr>');
  157. }
  158.  
  159. echo('
  160. <tr bgcolor="'.$style['text'].'"><td align="center" colspan="2">
  161. <input type="submit" value="Искать" />
  162. </td></tr>
  163. <tr bgcolor="'.$style['bottom'].'"><td colspan="2">
  164. '.$tag.'<a href="./?p=0&amp;v=xhtml&amp;sid='.$sid.'">Форум</a> '.$tagC.'
  165. </td></tr></table>
  166. </form>
  167. </body></html>');
  168. }
  169. } else
  170. {
  171. if (empty($_GET['q']))
  172. {
  173. $query = htmlspecialchars(sql(trim(chop(translatenick($_POST['q'])))));
  174. }
  175. else
  176. {
  177. $query = urldecode(htmlspecialchars(sql(trim(chop(translatenick($_GET['q']))))));
  178. }
  179. if (empty($_GET['w']))
  180. {
  181. $where = htmlspecialchars(sql(trim(chop(translatenick($_POST['w'])))));
  182. }
  183. else
  184. {
  185. $where = htmlspecialchars(sql(trim(chop(translatenick($_GET['w'])))));
  186. }
  187. if (empty($_GET['f']))
  188. {
  189. $forums = htmlspecialchars(sql(trim(chop(translatenick($_POST['f'])))));
  190. }
  191. else
  192. {
  193. $forums = htmlspecialchars(sql(trim(chop(translatenick($_GET['f'])))));
  194. }
  195. if (empty($_GET['l']))
  196. {
  197. $logic = htmlspecialchars(sql(trim(chop(translatenick($_POST['l'])))));
  198. }
  199. else
  200. {
  201. $logic = htmlspecialchars(sql(trim(chop(translatenick($_GET['l'])))));
  202. }
  203. $WHERE = "WHERE ";
  204. $SQL = "";
  205. if($logic =! "or" or $logic != "and")
  206. {
  207. $logic = "and";
  208. }
  209. if(!empty($forums))
  210. {
  211. $WHERE .= "id_forum=".intval($forums)." AND ";
  212. }
  213. if($where == 1)
  214. {
  215. $SQL .= "SELECT * FROM themes " . $WHERE . " name='".$query."' AND del != 1 ";
  216. $wh = "в авторах тем";
  217. } elseif($where == 2)
  218. {
  219. $SQL .= "SELECT posts.*, themes.* FROM posts
  220. LEFT JOIN themes ON posts.id_theme=themes.id " . $WHERE . " posts.name='".$query."' AND del != 1 ";
  221. $wh = "в авторах сообщений";
  222. } elseif($where == 3)
  223. {
  224. $SQL .= "SELECT * FROM `themes` " . $WHERE . " `tname` LIKE '%".$query."%' AND del != 1 ";
  225. $wh = "в названиях тем";
  226. } elseif($where == 4)
  227. {
  228. $SQL .= "SELECT * FROM `posts` " . $WHERE . " `post` LIKE '%" . $query . "%' ";
  229. $wh = "в сообщениях";
  230. }
  231. if($query != NULL)
  232. {
  233. $count = mysql_num_rows(mysql_query($SQL));
  234.  
  235. $start = intval($_GET['s']);
  236. if(!empty($start))
  237. {
  238. $limit = "LIMIT ".$start.", ".abs($count - $start);
  239. $int = $start;
  240. }
  241. else
  242. {
  243. $int = 0;
  244. }
  245.  
  246. if($version == "xhtml")
  247. {
  248. $thisPageSize = 1000;
  249. }
  250. else
  251. {
  252. $thisPageSize = 750;
  253. }
  254.  
  255. if(!$count OR strlen($query) < 3)
  256. {
  257. if($version == "wml")
  258. {
  259. header("Content-type: text/vnd.wap.wml; charset=utf-8");
  260. header("Cache-Control: no-cache");
  261. echo(doctype("Поиск").$tag.'
  262. Вы искали '.$wh.' <b>'.stripslashes($query).'</b> <br />
  263. По Вашему запросу ничего не найдено!<br />
  264. - - -<br />
  265. <a href="./?p=20&amp;v=wml&amp;sid='.$sid.'">Искать еще</a><br />
  266. <a href="./?p=0&amp;v=wml&amp;sid='.$sid.'">Форумы</a>
  267. '.$tagC.'
  268. </p></card></wml>');
  269. } elseif($version == "xhtml")
  270. {
  271. header("Content-type: text/html; charset=utf-8");
  272. header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT");
  273. header("Cache-Control: no-cache, must-relative");
  274. echo('<html>
  275. <head>
  276. <title>Поиск</title>
  277. </head>
  278. <body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
  279. <form action="" method="get">
  280. <table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
  281. <tr><td align="center" bgcolor="'.$style['title'].'">
  282. <font color="#FFFFFF"><b>Поиск</b></font>
  283. </td></tr>
  284. <tr><td bgcolor="'.$style['bottom'].'"></td></tr>
  285. <tr bgcolor="'.$style['text'].'"><td>'.$tag.'
  286. Вы искали '.$wh.' <b>'.stripslashes($query).'</b><br />
  287. По Вашему запросу ничего не найдено.
  288. '.$tagC.'</td></tr>
  289. <tr><td bgcolor="'.$style['bottom'].'"> '.$tag.'
  290. <a href="./?p=20&amp;v=xhtml&amp;sid='.$sid.'&amp;">Искать еще</a><br />
  291. <a href="./?p=0&amp;v=xhtml&amp;sid='.$sid.'">Форумы</a>
  292. '.$tagC.'</td></tr>
  293. </table>
  294. </body></html>');
  295. }
  296. } else
  297. {
  298. $que = mysql_query($SQL.$limit);
  299. if($version == "wml")
  300. {
  301. header("Content-type: text/vnd.wap.wml; charset=utf-8");
  302. header("Cache-Control: no-cache");
  303. echo(doctype("Поиск").$tag.'
  304. Вы искали '.$wh.' <b>'.stripslashes($query)."</b> <br />\r\n
  305. Найдено соответствий <b>".$count."</b>!<br />\r\n");
  306. while($link = mysql_fetch_array($que))
  307. {
  308. static $s;
  309. //echo(date('d/m H:i', $link['time']).']');
  310. $authoriz = mysql_query("SELECT * FROM `users` WHERE `username`='".$username."' AND `password`='".$password."'");
  311. $Sauthoriz = mysql_fetch_array($authoriz);
  312. if(!$authorize || $Sauthoriz['private'] == "off" || mysql_result(mysql_query("SELECT * FROM `users` WHERE `username`='".$link['name']."'"), 0) == 0)
  313. {
  314. echo("<b>".$link['name']."</b>]\r\n");
  315. } elseif($Sauthoriz['private'] == "private")
  316. {
  317. echo('<b><a href="./?p=24&amp;uid='.UserName2id($link['name']).'&amp;v='.$version.'&amp;sid='.$sid.'&amp;d=1">'.$link['name']."</a></b>]\r\n");
  318. }
  319. elseif($Sauthoriz['private'] == "user")
  320. {
  321. echo('<b><a href="./?p=6&amp;id='.UserName2id($link['name']).'&amp;v='.$version.'&amp;th='.$color.'">'.$link['name']."</a></b>]\r\n");
  322. }
  323. echo("<a href=\"./?p=4&amp;v=wml&amp;sid=".$sid."&amp;t=".$link['id']."\">".$link['tname']."</a><br />\r\n");
  324. echo(nl2br(str_replace($query, "<u>".$query."</u>", $link['post']))."<br />\r\n");
  325. $int++;
  326. $s += strlen($link['time'].$link['name'].$link['tname'].$link['post']);
  327. if($s + $thisPageSize + (110 * abs($int - $start)) > $pageSize)
  328. {
  329. if($int != $count)
  330. {
  331. $next = $int;
  332. }
  333. break;
  334. }
  335. }
  336. echo('- - -<br />');
  337. if(!empty($next))
  338. {
  339. echo("<a href=\"".$forumdir."q=".$q."&amp;w=".$w."&amp;f=".$f."&amp;l=".$l."&amp;sa=".$sa."&amp;p=20&amp;sid=".$sid."&amp;v=".$version."&amp;s=".$next."\">Дальше</a><br />\r\n");
  340. }
  341. echo('
  342. <a href="./?p=20&amp;v=wml&amp;sid='.$sid.'">Искать еще</a><br />
  343. <a href="./?v=wml&amp;sid='.$sid.'">Форумы</a>
  344. '.$tagC.'</p></card></wml>');
  345. } elseif($version == "xhtml")
  346. {
  347. header("Content-type: text/html; charset=utf-8");
  348. header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT");
  349. header("Cache-Control: no-cache, must-relative");
  350. echo('<html>
  351. <head>
  352. <title>Поиск</title>
  353. </head>
  354. <body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
  355. <form action="" method="get">
  356. <table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
  357. <tr><td align="center" bgcolor="'.$style['title'].'">
  358. <font color="#FFFFFF"><b>Поиск</b></font>
  359. </td></tr>
  360. <tr><td bgcolor="'.$style['bottom'].'">'.$tag.'
  361. Вы искали '.$wh.' <b>'.stripslashes($query).'</b><br />
  362. Найдено соответствий: '.$count.'
  363. '.$tagC.'</td></tr>
  364. <tr bgcolor="'.$style['text'].'"><td>'.$tag);
  365. while($link = mysql_fetch_assoc($que))
  366. {
  367. static $s;
  368. //echo(date('d/m H:i', $link['time']).']');
  369. $authoriz = mysql_query("SELECT * FROM `users` WHERE `username`='".$username."' AND `password`='".$password."'");
  370. $Sauthoriz = mysql_fetch_array($authoriz);
  371. if(!$authorize || $Sauthoriz['private'] == "off" || mysql_result(mysql_query("SELECT * FROM `users` WHERE `username`='".$link['name']."'"), 0) == 0)
  372. {
  373. echo("<b>".$link['name']."</b>]\r\n");
  374. } elseif($Sauthoriz['private'] == "private")
  375. {
  376. echo('<b><a href="./?p=24&amp;uid='.UserName2id($link['name']).'&amp;v='.$version.'&amp;sid='.$sid.'&amp;d=1">'.$link['name']."</a></b>]\r\n");
  377. }
  378. elseif($Sauthoriz['private'] == "user")
  379. {
  380. echo('<b><a href="./?p=6&amp;id='.UserName2id($link['name']).'&amp;v='.$version.'&amp;th='.$color.'">'.$link['name']."</a></b>]\r\n");
  381. }
  382. echo("<a href=\"./?p=4&amp;v=xhtml&amp;sid=".$sid."&amp;t=".$link['id']."\">".$link['tname']."</a><br />\r\n");
  383. echo(nl2br(str_replace($query, "<u>".$query."</u>", $link['post']))."<br />\r\n");
  384. $int++;
  385. $s += strlen($link['time'].$link['name'].$link['tname'].$link['post']);
  386. if($s + $thisPageSize + (110 * abs($int - $start)) > $pageSize)
  387. {
  388. if($int != $count)
  389. {
  390. $next = $int;
  391. }
  392. break;
  393. }
  394. }
  395. echo($tagC.'</td></tr>
  396. <tr bgcolor="'.$style['bottom'].'"><td>'.$tag);
  397. if(!empty($next))
  398. {
  399. echo("<a href=\"".$forumdir."q=".$query."&amp;w=".$where."&amp;f=".$forums."&amp;l=".$logic."&amp;sa=".$sa."&amp;p=20&amp;sid=".$sid."&amp;v=".$version."&amp;s=".$next."\">Дальше</a><br />\r\n");
  400. }
  401. echo('
  402. <a href="./?p=20&amp;v=xhtml&amp;sid='.$sid.'">Искать еще</a><br />
  403. <a href="./?p=0&amp;v=xhtml&amp;sid='.$sid.'">Форумы</a>
  404. '.$tagC.'</td></tr>
  405. </table>
  406. </body></html>');
  407. }
  408. }
  409. }
  410. }
  411. ?>