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

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


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

вопрос
Добрый день. Нашел на просторах инета небольшой модуль, он выводит на отдельной странице запросы которые люди используют на сайте. Проще говоря показывает, то что люди ищут на сайте. Все работает, но хотелось бы чтобы в базу не записывались запросы, которые вводит админ и модер. Группы 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 - 12 августа 2022 18:56 -


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 - 12 августа 2022 20:04 -

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

Kentavr
Юзер

Kentavr - 12 августа 2022 20:34 -

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

Kentavr
Юзер

Kentavr - 12 августа 2022 20:28 -

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

lutskboy
Эксперт

lutskboy - 12 августа 2022 20:38 -

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

Kentavr
Юзер

Kentavr - 12 августа 2022 20:46 -

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

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх