что-то с поиском

ошибки компонента поиск

#1 14 ноября 2016 в 19:55
Заметил (вернее подсказали пользователи), что при наборе в строке поиска по ошибке английскими буквами или абаракадабру на русском выбрасывает даже на на 404 а на страницу ошибки базы.При этом, поиск по адекватным словам работает нормально. Знатоки, помогите. Скрин ошибки прилагается.Версия 1.10.6. Предвидя некоторые советы, замена файлов components\search ничего не дала.
Прикрепленный файл
20161114161024_bev14.jpg 53 Кб
#2 14 ноября 2016 в 20:34
А файлы поиска и не причём. У вас в запросе session_id, это что? Если это поле в базе, то перед ней должна стоять буква.Или u.session_id или p.session_id. А если это переменная(параметр ф-ции), то и синтаксис должен быть соответствующий.
#3 14 ноября 2016 в 20:58


А файлы поиска и не причём. У вас в запросе session_id, это что? Если это поле в базе, то перед ней должна стоять буква.Или u.session_id или p.session_id. А если это переменная(параметр ф-ции), то и синтаксис должен быть соответствующий.

Lora

А нельзя ли поподробней, что надо сделать. С базой ничего не предпринималось, просто обновился с 1.10.4.-.1.10.5.-1.10.6 Все обновления прошли как по маслу.Без ошибок.И вот, оказывается, что-то пошло не так.
#4 14 ноября 2016 в 21:48
Дело скорее всего не в базе, а в самом запросе. Данный запрос похож на ф-цию getUsers() в components/users/model.php.Обращение к данной ф-ции есть во frontend.php этого же компонента, но я не нашёл там условия с session_id.Возможно в модуле каком то или у вас что то изменено.Не знаю, нужно искать.Поищите где ещё есть обращение к данной ф-ции($model->getUsers(...))
#5 15 ноября 2016 в 14:07
Проверено по совету и найдено четыре совпадения.Файлы, имеющие эти функции идентичны файлам чистой системы.готов выслушать еще рекомендации и советы. Проблема-то осталась. shock
#6 15 ноября 2016 в 19:48
Покажите под спойлер саму ф-цию getUsers
#7 15 ноября 2016 в 22:46


Покажите под спойлер саму ф-цию getUsers

Lora

frontend-$total = $model->getUsersCount($only_online); и $users = $model->getUsers($only_online);model-public function getUsers($is_online = false){ +public function getUsersCount($is_online = false){ user.class- public static function getUsersList($selected=0, $exclude=array()){
#8 16 ноября 2016 в 09:01
olegan, вы не поняли покажите саму функцию, которая находится в файле model.php.Начинается с
  1. public function getUsers($is_online = false){
  2. //покажите, что здесь
  3. }
#9 16 ноября 2016 в 14:43


olegan, вы не поняли покажите саму функцию, которая находится в файле model.php.Начинается с

  1. public function getUsers($is_online = false){
  2. //покажите, что здесь
  3. }

Lora

Извините, действительно не понял.Для меня это"темный лес".
public function getUsers($is_online = false){

//подготовим условия
$r_join = $is_online? "INNER JOIN cms_online o ON o.user_id = u.id": '';

$sql = "SELECT
u.id,
u.login,
u.nickname,
u.icq,
u.logdate as flogdate,
u.rating,
u.is_deleted as is_deleted,
u.birthdate, u.rating,
u.status as microstatus,
p.city, p.karma, p.imageurl,
p.gender as gender

FROM cms_users u
INNER JOIN cms_user_profiles p ON p.user_id = u.id
{$r_join}
WHERE u.is_locked = 0 AND u.is_deleted = 0
{$this->inDB->where}

{$this->inDB->group_by}

{$this->inDB->order_by}\n";

if ($this->inDB->limit){
$sql .= "LIMIT {$this->inDB->limit}";
}

$result = $this->inDB->query($sql);

$this->inDB->resetConditions();

if(!$this->inDB->num_rows($result)){ return false; }

$users = array();

while ($user = $this->inDB->fetch_assoc($result)){

$user['avatar'] = cmsUser::getUserAvatarUrl($user['id'], 'small', $user['imageurl'], $user['is_deleted']);
$user['user_link'] = cmsUser::getProfileLink($user['login'], $user['nickname']);
$user['flogdate'] = cmsCore::dateFormat($user['flogdate']);
$user['is_online'] = $is_online? true: cmsUser::isOnline($user['id']);

$users[] = $user;

}

return $users;

}
#10 16 ноября 2016 в 21:52
С функцией всё в порядке. Стоят какие нибудь платные или сторонние компоненты, плагины или модули? Может хаки применялись? Какие плагины подключены? Что бы не перечислять, сделайте скрин просто(это касаемо плагинов) и ссылку на него скиньте.
#11 16 ноября 2016 в 23:08


С функцией всё в порядке. Стоят какие нибудь платные или сторонние компоненты, плагины или модули? Может хаки применялись? Какие плагины подключены? Что бы не перечислять, сделайте скрин просто(это касаемо плагинов) и ссылку на него скиньте.

Lora

#12 17 ноября 2016 в 10:07
С плагинами понятно. Есть некоторые, в которых может использоваться такой запрос. Попробуйте отключить все кроме демо и редактора, если ошибка пропадёт, то включайте по очереди и смотрите. По остальным вопросам, что?
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.