PDA

View Full Version : сокращение поисковой фразы


Samovar
03.06.2006, 14:52
Здравствуйте!

Никак не могу сократить поисковую фразу до трех букв :(
Модуль - RuSearch V0.2, немного модифицированный - оставил только поиск для News и Downloads. Надеюсь на вашу помощь - сайт еле живой...

Soniks
05.06.2006, 20:53
Samovar зделайте обычную проверку на длину слова, например:

if(strlen(trim($query))<3){
include("header.php");
OpenTable();
echo "Поисковой запрос короткий!";
CloseTable();
include("footer.php");
die();
}

где $query это переменная в которой содержиться сам поисковой запрос.
вставлять это нужно до обработки запроса, т.е. в начало кода.

Samovar
06.06.2006, 00:33
спасибо большое! работает! :)

Alexander-V-Sh
15.06.2006, 03:19
Хотелось бы сделать на проверку символов.
На предлоги и слова определенные знаю как сделать, а вот если фраза полностью не совпадает, а содержит символ.
Например <> img /\ ' " b и т.д.
Чтобы просто выкидывала на ошибку, и не пыталась даже искать.
А то ввел сейчас <tr> вылетели ошибки в поисках.
Строка:
$title = ereg_replace($query, "$query", $title);
А в других местах - нашлось все, правда без ошибки.

В модуле энциклопедии как то сообразило что это ошибка :)

решил пока проблему таким образом.
У меня в нюке 2 фильтра, один для коментариев, другой для админа.
В самом начале модуля поставил:
$query = filter2($query);
В этом фильтре не разрешен в конфиге ниодин тег.

Поможет ли это как нибудь?
Просто читал про эньекции у вас на сайте, и запутался совсем в этих stripslashes, addslashes, check_html, nohtml...
Много разных версий поиска, плюс сам что то пытался. Где filter стоят просто, где слешес...

Soniks
21.06.2006, 01:49
Alexander-V-Sh лучше всего обрабатывать запросы пользователя через функцию htmlspecialchars(), strip_tags() и не помешает addslashes()