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

Размер файла: 14.84Kb
  1. <?php
  2. #-----------------------------------------------------#
  3. # ********* WAP-MOTORS ********* #
  4. # Made by : VANTUZ #
  5. # E-mail : vsem@pizdec.ru #
  6. # Site : http://pizdec.ru #
  7. # WAP-Site : http://visavi.net #
  8. # ICQ : 36-44-66 #
  9. # Вы не имеете право вносить изменения в код скрипта #
  10. #-----------------------------------------------------#
  11. require_once"../template/start.php";
  12. require_once"../template/regglobals.php";
  13. require_once"../template/config.php";
  14. require_once"../template/functions.php";
  15. require_once"../template/antidos.php";
  16. require_once"../template/cookies.php";
  17. require_once"../template/gzip.php";
  18. require_once"../template/header.php";
  19. require_once"../template/referer.php";
  20. include_once"../themes/$config_themes/index.php";
  21.  
  22.  
  23. $minfindme=3; // Минимальное кол-во символов в слове для поиска
  24. $maxfindme=25; // Максимальное кол-во символов в слове для поиска
  25. $config_searchforum=10; //Сообщений на страницу
  26.  
  27. echo '<img src="../images/img/bsearch.gif" alt=""> <b>Поиск по форуму</b><br><br>';
  28.  
  29. if(!isset($action)){
  30. if($config_themes!="wml"){
  31. echo '<form action="search.php?action=search&amp;'.SID.'" method="post">';
  32. echo '<b>Запрос:</b><br><input type="text" name="findme" /><br>';
  33. echo '<br><b>Искать:</b><br>';
  34. echo '<input name="ftype" type="radio" value="1" checked> В темах<br>';
  35. echo '<input name="ftype" type="radio" value="2"> В сообщениях<br>';
  36. echo '<br><b>Тип запроса:</b><br>';
  37. echo '<input name="tip" type="radio" value="1" checked> Или<br>';
  38. echo '<input name="tip" type="radio" value="2"> И<br>';
  39. echo '<br><input type="submit" value="Поиск" /></form><hr>';
  40.  
  41. }else{
  42. echo '<br>Запрос:<br>';
  43. echo '<input name="findme" /><br>';
  44. echo '<br>Искать: <br><select name="ftype">';
  45. echo '<option value="1">В темах</option>';
  46. echo '<option value="2">В сообщениях</option></select><br>';
  47. echo '<br>Тип запроса: <br><select name="tip">';
  48. echo '<option value="1">Или</option>';
  49. echo '<option value="2">И</option></select><br>';
  50. echo '<br><anchor>Поиск';
  51. echo '<go href="search.php?action=search&amp;'.SID.'" method="post">';
  52. echo '<postfield name="findme" value="$(findme)"/>';
  53. echo '<postfield name="ftype" value="$(ftype)"/>';
  54. echo '<postfield name="tip" value="$(tip)"/>';
  55. echo '</go></anchor><br>--------------------<br>';
  56. }
  57. echo '<b>Последние запросы</b><br><br>';
  58. $file = file(BASEDIR."local/datatmp/forumsearch.dat");
  59. $file = array_reverse($file);
  60. $countf=count($file); if($countf>5){$countf=5;}
  61. if($countf>0){
  62. for ($i = 0; $i < $countf; $i++){
  63. echo $file[$i].'<br>';}
  64. }else{echo 'Запросов еще не было!<br>';}}
  65.  
  66.  
  67. //----------------------- Поиск файлов ----------------------------//
  68. if($action=="search"){
  69. $findme=check(trim($findme));
  70. $findmetol=rus_utf_tolower($findme);
  71. $findmewords=explode(" ",$findmetol);
  72. $wordsitogos=count($findmewords);
  73.  
  74. for ($wi = 0; $wi < $wordsitogos; $wi++){
  75. if(strlen(utf_to_win($findmewords[$wi]))>=3){$findmeword[]=$findmewords[$wi];}
  76. }
  77. $wordsitogo=count($findmeword);
  78.  
  79. if ($findme!= "" && strlen(utf_to_win($findme)) >= $minfindme && strlen(utf_to_win($findme))<$maxfindme) {
  80. //-------------------------Запись последних поисков--------------------------------//
  81. $dows= file(BASEDIR."local/datatmp/forumsearch.dat");
  82. $dows=preg_replace ("|[\r\n]+|si","",$dows);
  83. if (!in_array($findme, $dows)) {
  84. $fp=fopen(BASEDIR."local/datatmp/forumsearch.dat","a+");
  85. flock ($fp,LOCK_EX);
  86. fputs($fp,"$findme\r\n");
  87. fflush ($fp);
  88. flock ($fp,LOCK_UN);
  89. fclose($fp);
  90. chmod ($fp, 0666);
  91. chmod (BASEDIR."local/datatmp/forumsearch.dat", 0666);
  92.  
  93. $file=file(BASEDIR."local/datatmp/forumsearch.dat");
  94. $i = count($file);
  95. if ($i>6) {
  96. $fp=fopen(BASEDIR."local/datatmp/forumsearch.dat","w");
  97. flock ($fp,LOCK_EX);
  98. unset($file[0],$file[1]);
  99. fputs($fp, implode("",$file));
  100. flock ($fp,LOCK_UN);
  101. fclose($fp);
  102. }}
  103. //---------------------------------------------------------------------------------//
  104. $dir = opendir ("../local/dataforum");
  105. while ($file = readdir ($dir)) {
  106. if (ereg("^top", $file)) { $fa[]=$file; }
  107.  
  108. if (ereg (".dat$", $file) && !ereg("^top", $file)&& !ereg("^main", $file)) { $fb[]=$file; }}
  109.  
  110. closedir ($dir);
  111. $fatotal = count($fa);
  112. $fbtotal = count($fb);
  113.  
  114.  
  115. $filtime=filemtime("../local/datatmp/forumthemes.dat");
  116. $filtime=$filtime+(3600*12); //12-часовое индексирование
  117. $ttime=time();
  118.  
  119. if($ttime>=$filtime){
  120. //-------------------- Запись тем ----------------------//
  121. clear_files("../local/datatmp/forumthemes.dat");
  122. for ($i = 0; $i < $fatotal; $i++){
  123. $tex = file("../local/dataforum/$fa[$i]");
  124. $toptotal = count($tex);
  125.  
  126. for ($x = 0; $x < $toptotal; $x++){
  127. $data = explode("|",$tex[$x]);
  128. if($data[3]!="" && $data[7]!="" && $data[8]!=""){
  129.  
  130. $dat_themes='|'.$data[0].'|'.rus_utf_tolower($data[3]).'|'.$data[5].'|'.$data[6].'|'.$data[7].'|'.$data[8].'|';
  131. $fp = fopen("../local/datatmp/forumthemes.dat","a+");
  132. flock ($fp,LOCK_EX);
  133. fputs($fp,"$dat_themes\r\n");
  134. fflush ($fp);
  135. flock ($fp,LOCK_UN);
  136. fclose($fp);
  137. chmod ($fp, 0666);
  138. chmod ("../local/datatmp/forumthemes.dat", 0666);
  139.  
  140.  
  141. }}}
  142.  
  143. //-------------------- Запись сообщений ----------------------//
  144. clear_files("../local/datatmp/forumtopic.dat");
  145. for ($i = 0; $i < $fbtotal; $i++){
  146. $tex = file("../local/dataforum/$fb[$i]");
  147. $toptotal = count($tex);
  148.  
  149. for ($x = 0; $x < $toptotal; $x++){
  150.  
  151. $data = explode("|",$tex[$x]);
  152.  
  153. if($data[3]!="" && $data[4]!="" && $data[7]!="" && $data[8]!=""){
  154.  
  155. $data[4]=strip_tags($data[4]);
  156. $dat_topic='|'.$data[0].'|'.$data[3].'|'.rus_utf_tolower($data[4]).'|'.$data[5].'|'.$data[6].'|'.$data[7].'|'.$data[8].'|'.$x.'|';
  157. $fp = fopen("../local/datatmp/forumtopic.dat","a+");
  158. flock ($fp,LOCK_EX);
  159. fputs($fp,"$dat_topic\r\n");
  160. fflush ($fp);
  161. flock ($fp,LOCK_UN);
  162. fclose($fp);
  163. chmod ($fp, 0666);
  164. chmod ("../local/datatmp/forumtopic.dat", 0666);
  165.  
  166.  
  167. }}}}
  168.  
  169.  
  170.  
  171. //----------------------Поиск в темах---------------------------------//
  172. if($ftype==1){
  173. $search_topic = file("../local/datatmp/forumthemes.dat");
  174. $alltotal = count($search_topic);
  175.  
  176. //--------------------------- Ищем любое сходство --------------------------//
  177. if($tip==1){
  178. for ($i = 0; $i < $alltotal; $i++){
  179.  
  180. $sdata = explode("|",$search_topic[$i]);
  181.  
  182. for ($wi = 0; $wi < $wordsitogo; $wi++){
  183. $findmetols=$findmeword[$wi];
  184.  
  185. if (strstr($sdata[2],$findmetols)){
  186. if (!in_array($sdata[2],$array_themout)){
  187. $sdata[2]=preg_replace("/$findmetols/",'<font color="#FF0000">'.$findmetols.'</font>',$sdata[2],1);
  188. $array_themauthor[]=$sdata[1];
  189. $array_themout[]=$sdata[2];
  190. $array_themdate[]=$sdata[3];
  191. $array_themtime[]=$sdata[4];
  192. $array_themid[]=$sdata[5];
  193. $array_themfid[]=$sdata[6];
  194.  
  195. }}}}}
  196.  
  197. //--------------------------- Ищем полное сходство --------------------------//
  198. if($tip==2){
  199.  
  200. for ($i = 0; $i < $alltotal; $i++){
  201.  
  202. $sdata = explode("|",$search_topic[$i]);
  203.  
  204.  
  205. if (strstr($sdata[2],$findmetol)){
  206. if (!in_array($sdata[2],$array_themout)){
  207.  
  208. $sdata[2]=preg_replace("/$findmetol/",'<font color="#FF0000">'.$findmetol.'</font>',$sdata[2],1);
  209. $array_themauthor[]=$sdata[1];
  210. $array_themout[]=$sdata[2];
  211. $array_themdate[]=$sdata[3];
  212. $array_themtime[]=$sdata[4];
  213. $array_themid[]=$sdata[5];
  214. $array_themfid[]=$sdata[6];
  215.  
  216. }}}
  217.  
  218. }
  219. $total=count($array_themout);
  220. //print_r($array_themout);
  221.  
  222.  
  223. //------------------------------ Вывод найденного ----------------------------------//
  224. if($total>0){
  225. echo '<br>Поиск запроса <b>'.$findme.'</b> в темах<br>';
  226. echo 'Найдено совпадений: <b>'.(int)$total.'</b><br><br>';
  227.  
  228.  
  229. if (empty($_GET['start'])) $start = 0;
  230. else $start = $_GET['start'];
  231. if ($total < $start + $config_searchforum){ $end = $total; }
  232. else {$end = $start + $config_searchforum; }
  233. for ($i = $start; $i < $end; $i++){
  234.  
  235.  
  236. echo '<div class=b><img src="../images/img/forums.gif" alt=""> ';
  237. echo '<b>'.($i+1).'. <a href="../pages/anketa.php?uz='.$array_themauthor[$i].'&amp;'.SID.'">'.nickname($array_themauthor[$i]).'</a></b> ';
  238. echo '('.$array_themdate[$i].'/'.$array_themtime[$i].')</div>';
  239. echo '<div><b><a href="index.php?fid='.$array_themfid[$i].'&amp;id='.$array_themid[$i].'&amp;'.SID.'">'.$array_themout[$i].'</a></b></div>';
  240. }
  241.  
  242. echo '<hr>';
  243. if ($start != 0) {echo '<a href="search.php?action=search&amp;findme='.$findme.'&amp;ftype='.$ftype.'&amp;tip='.$tip.'&amp;start='.($start - $config_searchforum).'&amp;'.SID.'">&lt;-Назад </a>';}else{echo '&lt;-Назад';}
  244. echo ' | ';
  245. if ($total > $start + $config_searchforum) {echo ' <a href="search.php?action=search&amp;findme='.$findme.'&amp;ftype='.$ftype.'&amp;tip='.$tip.'&amp;start='.($start + $config_searchforum).'&amp;'.SID.'">Далее-&gt;</a>';}else{echo 'Далее-&gt;';}
  246.  
  247. if($total>0){
  248.  
  249. $ba=ceil($total/$config_searchforum);
  250. $ba2=$ba*$config_searchforum-$config_searchforum;
  251.  
  252. echo '<br><hr>Страницы:';
  253. $asd=$start-($config_searchforum*3);
  254. $asd2=$start+($config_searchforum*4);
  255.  
  256. if($asd<$total && $asd>0){echo ' <a href="search.php?action=search&amp;findme='.$findme.'&amp;ftype='.$ftype.'&amp;tip='.$tip.'&amp;start=0&amp;'.SID.'">1</a> ... ';}
  257.  
  258. for($i=$asd; $i<$asd2;)
  259. {
  260. if($i<$total && $i>=0){
  261. $ii=floor(1+$i/$config_searchforum);
  262.  
  263. if ($start==$i) {
  264. echo ' <b>('.$ii.')</b>';
  265. }else {
  266. echo ' <a href="search.php?action=search&amp;findme='.$findme.'&amp;ftype='.$ftype.'&amp;tip='.$tip.'&amp;start='.$i.'&amp;'.SID.'">'.$ii.'</a>';
  267. }}
  268.  
  269. $i=$i+$config_searchforum;}
  270. if($asd2<$total){echo ' ... <a href="search.php?action=search&amp;findme='.$findme.'&amp;ftype='.$ftype.'&amp;tip='.$tip.'&amp;start='.$ba2.'&amp;'.SID.'">'.$ba.'</a>';}
  271. }
  272. echo '<br><br>';
  273.  
  274. }else{echo '<br>По вашему запросу ничего не найдено.<br>';}
  275.  
  276. }
  277.  
  278.  
  279. //----------------------Поиск в сообщениях---------------------------------//
  280. if($ftype==2){
  281. $search_topic = file("../local/datatmp/forumtopic.dat");
  282. $alltotal = count($search_topic);
  283.  
  284. //--------------------------- Ищем любое сходство --------------------------//
  285. if($tip==1){
  286. for ($i = 0; $i < $alltotal; $i++){
  287.  
  288. $sdata = explode("|",$search_topic[$i]);
  289.  
  290. for ($wi = 0; $wi < $wordsitogo; $wi++){
  291. $findmetols=$findmeword[$wi];
  292.  
  293. if (strstr($sdata[3],$findmetols)){
  294. if (!in_array($sdata[2],$array_topthemes)){
  295.  
  296. $sdata[3]=preg_replace("/$findmetols/",'[b][red]'.$findmetols.'[/red][/b]',$sdata[3],1);
  297.  
  298. $array_topauthor[]=$sdata[1];
  299. $array_topthemes[]=$sdata[2];
  300. $array_topout[]=$sdata[3];
  301. $array_topdate[]=$sdata[4];
  302. $array_toptime[]=$sdata[5];
  303. $array_topid[]=$sdata[6];
  304. $array_topfid[]=$sdata[7];
  305. $array_toppost[]=$sdata[8];
  306. }}}}}
  307.  
  308. //--------------------------- Ищем полное сходство --------------------------//
  309. if($tip==2){
  310.  
  311. for ($i = 0; $i < $alltotal; $i++){
  312.  
  313. $sdata = explode("|",$search_topic[$i]);
  314.  
  315.  
  316. if (strstr($sdata[3],$findmetol)){
  317. if (!in_array($sdata[2],$array_topthemes)){
  318. $sdata[3]=preg_replace("/$findmetol/",'[b][red]'.$findmetol.'[/red][/b]',$sdata[3],1);
  319. $array_topauthor[]=$sdata[1];
  320. $array_topthemes[]=$sdata[2];
  321. $array_topout[]=$sdata[3];
  322. $array_topdate[]=$sdata[4];
  323. $array_toptime[]=$sdata[5];
  324. $array_topid[]=$sdata[6];
  325. $array_topfid[]=$sdata[7];
  326. $array_toppost[]=$sdata[8];
  327.  
  328. }}}
  329.  
  330. }
  331.  
  332.  
  333.  
  334. $total=count($array_topout);
  335. //print_r($array_topout);
  336.  
  337.  
  338. //------------------------------ Вывод найденного ----------------------------------//
  339. if($total>0){
  340. echo '<br>Поиск запроса <b>'.$findme.'</b> в сообщениях<br>';
  341. echo 'Найдено совпадений: <b>'.(int)$total.'</b><br><br>';
  342.  
  343.  
  344. if (empty($_GET['start'])) $start = 0;
  345. else $start = $_GET['start'];
  346. if ($total < $start + $config_searchforum){ $end = $total; }
  347. else {$end = $start + $config_searchforum; }
  348. for ($i = $start; $i < $end; $i++){
  349.  
  350. $page = floor($array_toppost[$i] / $config_forumpost) * $config_forumpost;
  351.  
  352. echo '<div class=b><img src="../images/img/forums.gif" alt=""> ';
  353. echo '<b>'.($i+1).'. <a href="index.php?fid='.$array_topfid[$i].'&amp;id='.$array_topid[$i].'&amp;page='.$page.'&amp;'.SID.'">'.$array_topthemes[$i].'</a></b> ';
  354. echo '('.$array_topdate[$i].'/'.$array_toptime[$i].')</div>';
  355.  
  356. echo '<div>Автор: <b><a href="../pages/anketa.php?uz='.$array_topauthor[$i].'&amp;'.SID.'">'.nickname($array_topauthor[$i]).'</a></b><br>';
  357. echo 'Сообщение: '.bb_code($array_topout[$i]).'</div>';
  358. }
  359.  
  360. echo '<hr>';
  361. if ($start != 0) {echo '<a href="search.php?action=search&amp;findme='.$findme.'&amp;ftype='.$ftype.'&amp;tip='.$tip.'&amp;start='.($start - $config_searchforum).'&amp;'.SID.'">&lt;-Назад</a> ';}else{echo '&lt;-Назад';}
  362. echo ' | ';
  363. if ($total > $start + $config_searchforum) {echo ' <a href="search.php?action=search&amp;findme='.$findme.'&amp;ftype='.$ftype.'&amp;tip='.$tip.'&amp;start='.($start + $config_searchforum).'&amp;'.SID.'">Далее-&gt;</a>';}else{echo 'Далее-&gt;';}
  364.  
  365. if($total>0){
  366.  
  367. $ba=ceil($total/$config_searchforum);
  368. $ba2=$ba*$config_searchforum-$config_searchforum;
  369.  
  370. echo '<br><hr>Страницы:';
  371. $asd=$start-($config_searchforum*3);
  372. $asd2=$start+($config_searchforum*4);
  373.  
  374. if($asd<$total && $asd>0){echo ' <a href="search.php?action=search&amp;findme='.$findme.'&amp;ftype='.$ftype.'&amp;tip='.$tip.'&amp;start=0&amp;'.SID.'">1</a> ... ';}
  375.  
  376. for($i=$asd; $i<$asd2;)
  377. {
  378. if($i<$total && $i>=0){
  379. $ii=floor(1+$i/$config_searchforum);
  380.  
  381. if ($start==$i) {
  382. echo ' <b>('.$ii.')</b>';
  383. }else {
  384. echo ' <a href="search.php?action=search&amp;findme='.$findme.'&amp;ftype='.$ftype.'&amp;tip='.$tip.'&amp;start='.$i.'&amp;'.SID.'">'.$ii.'</a>';
  385. }}
  386.  
  387. $i=$i+$config_searchforum;}
  388. if($asd2<$total){echo ' ... <a href="search.php?action=search&amp;findme='.$findme.'&amp;ftype='.$ftype.'&amp;tip='.$tip.'&amp;start='.$ba2.'&amp;'.SID.'">'.$ba.'</a>';}
  389. }
  390. echo '<br><br>';
  391.  
  392. }else{echo '<br>По вашему запросу ничего не найдено.<br>';}
  393.  
  394.  
  395.  
  396.  
  397. }
  398.  
  399.  
  400. }else{echo '<br>Ваш запрос пуст, менее '.(int)$minfindme.' или более '.(int)$maxfindme.' символов!<br>'; }
  401. echo '<br><img src="../images/img/back.gif" alt=""> <a href="search.php?'.SID.'">Вернуться</a>';
  402. }
  403.  
  404.  
  405. echo '<br><img src="../images/img/panel.gif" alt=""> <a href="index.php?'.SID.'">В форум</a>';
  406. echo '<br><img src="../images/img/homepage.gif" alt=""> <a href="../index.php?'.SID.'">На главную</a>';
  407. include_once"../themes/$config_themes/foot.php";
  408. ?>
  409.