Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Общие вопросы по PHP » Поиск только для админа. Как поправить сторонний модуль?

Поиск только для админа. Как поправить сторонний модуль?


     Общие вопросы по PHP, Модули    478

вопрос
Добрый день. Нашел на просторах инета небольшой модуль, он выводит на отдельной странице запросы которые люди используют на сайте. Проще говоря показывает, то что люди ищут на сайте. Все работает, но хотелось бы чтобы в базу не записывались запросы, которые вводит админ и модер. Группы 1 и 2 просто исключить.

Подскажите какую правку сделать?

Вот код модуля


<?php
if(!defined('DATALIFEENGINE')){
  die("404 No file!");
}

$metatags['title'] = "Поиск по сайту";
//$metatags['description'] = "";
//$metatags['keywords'] = "";

$showLimit=100;

if(!isset($lastStat)){//выводим
// Подгружаем шаблон
 // кол вывода

	$tpl->load_template('lastsearch.tpl');
	
	$searchList= "";



  $result = $db->Query("SELECT * FROM dle_search ORDER BY id DESC");
  if ($db->num_rows($result) > 0) {
  $searchCounter=0;
  
  $cnt =1;
  while($row = $db->get_row($result)){
  $searchCounter++;
 
 
	$searchList.= "";

$cnt++;
  
  
  if($searchCounter>=$showLimit)break;
  }
  }

	 
     $tpl->set('{last_search}', $searchList);
     $tpl->compile('content');
     $tpl->clear();
}else
if($lastStat!='')
{//запоминаем

 	$lastStat = str_replace("'", "\'", $lastStat);
	
    $ipClient=getenv("REMOTE_ADDR");
    $result = $db->Query("SELECT id,query,ip FROM dle_search WHERE query='".$lastStat."'");
    if ($db->num_rows($result) > 0)
    {
      $row = $db->get_row($result);
      if($row['query']==$lastStat /*&& $row['ip']==$ipClient*/)$db->query("DELETE FROM dle_search WHERE id=".$row['id']);
    }
	$db->query("INSERT INTO dle_search (ip,query,date) VALUE ('".$ipClient."','".$lastStat."','".date('Y-m-d')."')");
  $counts = $db->get_row($db->query("SELECT COUNT(*) as `cnt` FROM dle_search"), 0);
  $counts = $counts['cnt'];
  $counts = $counts-($showLimit*2);
  if($counts>0)
  {
    $db->query("DELETE FROM dle_search ORDER BY id LIMIT {$counts}");
  }
}
?>


Подключается модуль здесь engine/modules/search.php кодом

	$lastStat = $findstory;

	if($_POST['ajax']) {
				$lastStat = iconv('UTF-8','cp1251',$lastStat);
			}


	include("lastsearch.php");

Ответа пока нет


6 комментариев

lutskboy
Эксперт

lutskboy - -


if (in_array($member_id['user_group'], ['5', '6', '8'])) {
	$db->query("INSERT INTO dle_search (ip,query,date) VALUE ('".$ipClient."','".$lastStat."','".date('Y-m-d')."')");
}

Kentavr
Юзер

Kentavr - -

Спасибо, сейчас попробую..

Kentavr
Юзер

Kentavr - -

А все таки нет, все равно запрос появляется, но через какое то время. Не понимаю как так. До правки запрос сразу в модуле отображался, После правки, ввожу в поиск что то, на странице модуля через пару мин появляется. Ерунда какая то. Как будто запоминает и потом выводит с задержкой

Kentavr
Юзер

Kentavr - -

@lutskboy Не знаю как решить (

lutskboy
Эксперт

lutskboy - -

i don't know. ну вроде только один insert. должно работать

Kentavr
Юзер

Kentavr - -

Я сам в шоке, просто мистика. Как будто где то еще хранятся данные из поиска.

Похожие вопросы

наверх