Важное с Sysman.Ru: Проблема с поиском в разных регистрах
Рекомендованные сообщения
Сейчас на странице 0
- Нет пользователей, просматривающих эту страницу.
A better way to browse. Learn more.
A full-screen app on your home screen with push notifications, badges and more.
Song:
Сиптомы:
Если в Админ-центре у вас установлен "обычный" поиск (не полнотекстовый) и база данных вашего форума создана в регистрозависимом чарсете (определить какой у вас, см. файл в конце статьи), вы можете испытывать проблемы с поиском.
Причина:
При поиске в файле search_mysql_man.php в запросе текст поста приводится к нижнему регистру:
Однако сама строка поиска остаётся в том регистре, в котором её задал пользователь. Т.е. например, если пользователь задал поиск "маша", то найдётся только "маша".
Ни "Маша", ни "МАША" не найдутся.
Исправление:
1-ый вариант: добавить выделенный ниже код:
[b]function[/b] do_main_search(){ [b]global[/b] [color=#048284]$ibforums[/color], [color=#048284]$DB[/color], [color=#048284]$std[/color], [color=#048284]$HTTP_POST_VARS[/color], [color=#048284]$print[/color]; [color=#048284]$ibforums[/color]->input['keywords'] = strtolower([color=#048284]$ibforums[/color]->input['keywords']);[b]function[/b] do_main_search(){ [color=#048284]$this[/color]->ipsclass->input['keywords'] = strtolower([color=#048284]$this[/color]->ipsclass->input['keywords']);2-ой вариант: поменять чарсет БД на регистронезависимый.
Собственно, если Вы смените чарсет на регистронезависимый можно вообще убрать LOWER из запросов выше, т.к. они не сказываются на результат, а только замедляют поиск.
Примечания:
1) Если после исправления в 1-ом варианте глюк всё ещё присутствует, воспользуйтесь этой статьёй: Самопроизвольное изменение регистра букв
2) Определить какой у вас чарсет можно из следующего справочного руководства phpMyAdmin (html файл):
Song_Bot: К посту прикреплены вложения, но посмотреть Вы их можете, только открыв статью в Форуме.