Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Неверно работает поиск пользователей
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
-
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 4 года 10 месяцев
- Благодарил (а): 4 раза
Неверно работает поиск пользователей
Проблема вот в чем, если я открываю в админке пользователей, и иду в очистку пользователей, там выбираю параметры поиска, скажем регистрация ДО такогото момента, и время последнего посещения ДО какогото момента, то поиск выдает ничего((( тоесть пользователей не найдено.
Но если я нажимаю "найти пользователя" в томже "очистка пользователей" и ввожу такиеже параметры поиска, то пользователи находятся.
Вот я снял видеоролик процесса, где сделал указанные процедуры, и продемонстрировал ошибку.
Но если я нажимаю "найти пользователя" в томже "очистка пользователей" и ввожу такиеже параметры поиска, то пользователи находятся.
Вот я снял видеоролик процесса, где сделал указанные процедуры, и продемонстрировал ошибку.
-
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 4 года 10 месяцев
- Благодарил (а): 4 раза
Re: Не верно работает поиск пользователей
А где же файл видеоролика, в нем же все основное, начиная от версии форума, и показано как воспроизвести ошибку.
Прикладываю повторно...
А я понял по размеру не вышло,
кинул на яднекс диск https://yadi.sk/i/Zg2HxnezKVN45A
Прикладываю повторно...
А я понял по размеру не вышло,
кинул на яднекс диск https://yadi.sk/i/Zg2HxnezKVN45A
-
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 4 года 10 месяцев
- Благодарил (а): 4 раза
Re: Не верно работает поиск пользователей
Описание проблемы: Не верно работает выборка пользователей
Произведенные изменения, после которых начались неполадки: Изменения отсутсвуют
Версия phpBB: 3.2.7
Используемые стили: Любой
Используемые расширения: Не влияет
Версия PHP:: 7.2.15
Используемая СУБД и её версия: SQLite 3.20.1
Ссылка на конференцию: http://tiven.ru/index.php
Есть ли у вас тестовый аккаунт: Нет
Использовался ли поиск для решения проблемы:
Если да, то какие запросы вы использовали:
Произведенные изменения, после которых начались неполадки: Изменения отсутсвуют
Версия phpBB: 3.2.7
Используемые стили: Любой
Используемые расширения: Не влияет
Версия PHP:: 7.2.15
Используемая СУБД и её версия: SQLite 3.20.1
Ссылка на конференцию: http://tiven.ru/index.php
Есть ли у вас тестовый аккаунт: Нет
Использовался ли поиск для решения проблемы:
Если да, то какие запросы вы использовали:
-
- Поддержка
- Сообщения: 12451
- Стаж: 12 лет 9 месяцев
- Благодарил (а): 166 раз
- Поблагодарили: 2479 раз
-
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 4 года 10 месяцев
- Благодарил (а): 4 раза
Re: Не верно работает поиск пользователей
Татьяна, тут на вид ошибка не в расширениях, их кстати минимум, точнее одно, не допуск постов с ссылками на иные ресурсы.
Поиск из "Очистка списка пользователей" не выдает пользователей если пользователь зарегистрировался, но нет у него даты последнего визита.
А поиск по параметрам через "[ Найти пользователя ]" дает пользователей у которых отсутствует запись о последнем визите на форум. На видео это видно в виде прочерка.
-
- Поддержка
- Сообщения: 12451
- Стаж: 12 лет 9 месяцев
- Благодарил (а): 166 раз
- Поблагодарили: 2479 раз
Re: Не верно работает поиск пользователей
Отключают все расширения, после этого чистят кеш и проверяют. Если ошибка не пропадает, тогда точно дело не в расширениях, а так это самое первое в чём бывает дело
-
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 4 года 10 месяцев
- Благодарил (а): 4 раза
Re: Не верно работает поиск пользователей
Я нашол ошибку.
Описываю, есть код выборки в файле: includes/acp/acp_prune.php
Строка 474 и далее:
Код: Выделить всё
// First handle pruning of users who never logged in, last active date is 0000-00-00
if (count($active) && (int) $active[0] == 0 && (int) $active[1] == 0 && (int) $active[2] == 0)
{
$where_sql .= ' AND user_lastvisit = 0';
}
else if (count($active) && $active_select != 'lt')
{
$where_sql .= ' AND user_lastvisit ' . $key_match[$active_select] . ' ' . gmmktime(0, 0, 0, (int) $active[1], (int) $active[2], (int) $active[0]);
}
else if (count($active))
{
$where_sql .= ' AND (user_lastvisit > 0 AND user_lastvisit < ' . gmmktime(0, 0, 0, (int) $active[1], (int) $active[2], (int) $active[0]) . ')';
}
Я конечно пока не все тут выяснил, но если выкинуть && $active_select != 'lt'
Тем самым создается на выполнение второй запрос, то поиск происходит корректно.
Еще раз повторюсь, как я и предполагал, эта ошибка не связана с дополнениями и расширениями, а исключительно в самом ядре форума.
Я примитивно показал ее решение в лоб, однако повторюсь, надо более грамотно разбираться с самим SQL запросом, но код в котором кроется ошибка в запросе я выявил! И его наглядно продемонстрировал.
Вот видео демонстрирующее "исправление" ошибки https://yadi.sk/i/wlH75Em67LCuFw
Повторюсь, я лиш показал что она существует, а не метод ее КОРРЕКТНОГО исправления!
-
- Поддержка
- Сообщения: 12451
- Стаж: 12 лет 9 месяцев
- Благодарил (а): 166 раз
- Поблагодарили: 2479 раз
Re: Не верно работает поиск пользователей
Пока всё логично. Если пользователь не заходил вообще, то по времени посещения до какого-то момента его выдавать не должно. Т.к. времени нет
Нелогично что выдаёт при другом виде поиска
-
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 4 года 10 месяцев
- Благодарил (а): 4 раза
Re: Не верно работает поиск пользователей
Татьяна, я лиш указал что два вида поиска выдают разные результаты.
Впрочем, я считаю, что если пользователь не заходил, то поиск который "другой вид поиска" выдают мне кажется более верно.
Если надо удалить всех кто не посещал и зарегистрировался до определенного момента.
ps: можно удалить кусок строки
Также будет выдавать тех кто не посещал.
Отправлено спустя 9 минут 14 секунд:
Да, в ваших словах, несомненно, есть логика.
Но тут в таком случае, надо или както внести в код форума дополнительный параметр "флаг что он не посещал форум", или чтото иное.
Так как, действительно, трактовка данных условий поиска выходит двоякой.
Впрочем, я считаю, что если пользователь не заходил, то поиск который "другой вид поиска" выдают мне кажется более верно.
Если надо удалить всех кто не посещал и зарегистрировался до определенного момента.
ps: можно удалить кусок строки
Код: Выделить всё
user_lastvisit > 0 AND
Отправлено спустя 9 минут 14 секунд:
Да, в ваших словах, несомненно, есть логика.
Но тут в таком случае, надо или както внести в код форума дополнительный параметр "флаг что он не посещал форум", или чтото иное.
Так как, действительно, трактовка данных условий поиска выходит двоякой.
-
- Поддержка
- Сообщения: 12451
- Стаж: 12 лет 9 месяцев
- Благодарил (а): 166 раз
- Поблагодарили: 2479 раз
Re: Не верно работает поиск пользователей
Код: Выделить всё
// First handle pruning of users who never logged in, last active date is 0000-00-00
Отправлено спустя 37 секунд:
По крайней мере, в коде поиска в админке
-
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 4 года 10 месяцев
- Благодарил (а): 4 раза
Re: Не верно работает поиск пользователей
Я вам и процетировал этот кусок кода... с указанием строки.
Но на видео видно что он не работает. А работает выкинут лиш условие
Код: Выделить всё
user_lastvisit > 0 AND
Иными словами, если стоит условие ДО то мы не попадем под условие
Код: Выделить всё
&& $active_select != 'lt'
Код: Выделить всё
$where_sql .= ' AND (user_lastvisit > 0 AND user_lastvisit < ' . gmmktime(0, 0, 0, (int) $active[1], (int) $active[2], (int) $active[0]) . ')';
-
- Поддержка
- Сообщения: 12451
- Стаж: 12 лет 9 месяцев
- Благодарил (а): 166 раз
- Поблагодарили: 2479 раз
Re: Не верно работает поиск пользователей
Работает ровно так, как надо
Если указана точная дата, то непосещавших выдавать не должно. Если указать дату
0000-00-00
, то выдаст только непосещавшихА вот в коде другого поиска ошибка. Что есть, то есть
-
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 4 года 10 месяцев
- Благодарил (а): 4 раза
Re: Не верно работает поиск пользователей
Я предполагаю, что в данном случае, проверка что он вообще посещал форум в коде лишняя.
А именно 485 строка вместо
https://github.com/phpbb/phpbb/blob/mas ... e.php#L485
Должна выглядеть
Наверное вы правы, тему можно закрывать, спасибо.
А именно 485 строка вместо
https://github.com/phpbb/phpbb/blob/mas ... e.php#L485
Должна выглядеть
Код: Выделить всё
$where_sql .= ' AND (user_lastvisit < ' . gmmktime(0, 0, 0, (int) $active[1], (int) $active[2], (int) $active[0]) . ')';
-
- Поддержка
- Сообщения: 12451
- Стаж: 12 лет 9 месяцев
- Благодарил (а): 166 раз
- Поблагодарили: 2479 раз
Re: Не верно работает поиск пользователей
Сообщаем об ошибках phpBB 3.2.x разработчикам - верный подход там (этот ли код будет в последующих версиях движка пока непонятно, но работает)
Отправлено спустя 1 минуту 36 секунд:
Так что проверка там не лишняя
Отправлено спустя 1 минуту 36 секунд:
Специально на тестовом искала по дате за 2011 год, хотя форум создан позже. И мне выдавало результаты
Так что проверка там не лишняя