PHP Warning

Проблемы с установкой или работой phpBB 3.3.x? Получите помощь здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
romaamor
phpBB 3.0.7-PL1
Сообщения: 2515
Стаж: 13 лет 8 месяцев
Откуда: Одесса
Благодарил (а): 662 раза
Поблагодарили: 178 раз

Re: PHP Warning

Сообщение romaamor »

Сейчас попробую. :?

Отправлено спустя 4 минуты 33 секунды:
Готово. Сделать запрос ?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12877
Стаж: 14 лет 4 месяца
Благодарил (а): 160 раз
Поблагодарили: 2335 раз

Re: PHP Warning

Сообщение Татьяна5 »

Да
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17081
Стаж: 19 лет 6 месяцев
Откуда: Красноярск
Благодарил (а): 567 раз
Поблагодарили: 1752 раза

Re: PHP Warning

Сообщение rxu »

Какая-то проблема с группами 11 и 16, если их убрать из запроса, то всё хорошо. Если добавить, появляются 13 строк с нулями (9 по группе 11 и 4 по группе 16). Но локализовать проблему не получается.
Изображение
Аватара пользователя
romaamor
phpBB 3.0.7-PL1
Сообщения: 2515
Стаж: 13 лет 8 месяцев
Откуда: Одесса
Благодарил (а): 662 раза
Поблагодарили: 178 раз

Re: PHP Warning

Сообщение romaamor »

Ошибка
SQL запрос: Копировать Документация


DELETE FROM phpbb_user_group WHERE user_id IN (SELECT ug.user_id FROM phpbb_user_group ug LEFT JOIN phpbb_users u ON u.user_id = ug.user_id WHERE u.user_id IS NULL);
Ответ MySQL: Документация

#1093 - Не допускается указание таблицы 'phpbb_user_group' в списке таблиц FROM для внесения в нее изменений
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12877
Стаж: 14 лет 4 месяца
Благодарил (а): 160 раз
Поблагодарили: 2335 раз

Re: PHP Warning

Сообщение Татьяна5 »

Значит так:

Код: Выделить всё

DELETE FROM phpbb_user_group WHERE user_id IN (
Тут все те числа из бекапа запроса через запятую (преобразовала их как надо)
phpbb_user_group.zip
И закрыть скобку

При таком количестве придётся сделать много запросов
Аккуратней, там посреди чисел куски запросов встречаются

Отправлено спустя 1 минуту 50 секунд:
rxu, тут уже тысяч 15 несуществующих пользователей нарисовались. Часть из них в тех группах находятся
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
romaamor
phpBB 3.0.7-PL1
Сообщения: 2515
Стаж: 13 лет 8 месяцев
Откуда: Одесса
Благодарил (а): 662 раза
Поблагодарили: 178 раз

Re: PHP Warning

Сообщение romaamor »

Татьяна5, а может не надо ? Может оставить всё как есть ?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12877
Стаж: 14 лет 4 месяца
Благодарил (а): 160 раз
Поблагодарили: 2335 раз

Re: PHP Warning

Сообщение Татьяна5 »

romaamor, пришло в голову...
Что там было про расширение регистрации через соцсети? Какое используется или использовалось раньше? И важно включено ли оно сейчас
Нет ли у него отдельной таблицы пользователей...
Аватара пользователя
romaamor
phpBB 3.0.7-PL1
Сообщения: 2515
Стаж: 13 лет 8 месяцев
Откуда: Одесса
Благодарил (а): 662 раза
Поблагодарили: 178 раз

Re: PHP Warning

Сообщение romaamor »

Стояло раньше расширение uLogin. Потом оно перестало работать. Через него много было регистраций. Если точнее 1241 пользователя.
Сейчас стоит OneAll и оно рабочее.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12877
Стаж: 14 лет 4 месяца
Благодарил (а): 160 раз
Поблагодарили: 2335 раз

Re: PHP Warning

Сообщение Татьяна5 »

Посмотреть бы сначала на OneAll, чтобы лишнего не задеть
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17081
Стаж: 19 лет 6 месяцев
Откуда: Красноярск
Благодарил (а): 567 раз
Поблагодарили: 1752 раза

Re: PHP Warning

Сообщение rxu »

romaamor писал(а): 08.04.2024 20:09 а может не надо
Вообще похоже на то. Например, если попытаться посмотреть профиль любого пользователя из этого списка, например https://pikniktv.com/memberlist.php?mode=viewprofile&u=463, то получим Запрашиваемого пользователя не существует.

Т.е. в таблице phpbb_user_group они есть, а в phpbb_users нет. Отсюда и ошибки.
Изображение
Аватара пользователя
romaamor
phpBB 3.0.7-PL1
Сообщения: 2515
Стаж: 13 лет 8 месяцев
Откуда: Одесса
Благодарил (а): 662 раза
Поблагодарили: 178 раз

Re: PHP Warning

Сообщение romaamor »

Татьяна5 писал(а): 08.04.2024 20:17 Посмотреть бы сначала на OneAll
https://docs.oneall.com/plugins/guide/s ... g0ne9igu01
rxu, оптимальный вариант оставить всё как есть ?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12877
Стаж: 14 лет 4 месяца
Благодарил (а): 160 раз
Поблагодарили: 2335 раз

Re: PHP Warning

Сообщение Татьяна5 »

Тааак, в OneAll отдельная таблица пользователей

Код: Выделить всё

SELECT ug.user_id FROM phpbb_user_group ug 

LEFT JOIN phpbb_users u 
ON u.user_id = ug.user_id 

LEFT JOIN phpbb_oasl_user o 
ON o.user_id = ug.user_id 

WHERE u.user_id IS NULL AND o.user_id IS NULL
А вот так какой результат будет?

Отправлено спустя 2 минуты 26 секунд:
И то OneAll надо модифицировать вдобавок, иначе всё равно warning'и будет выдавать

Отправлено спустя 52 секунды:
Была опечатка в запросе, исправила
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17081
Стаж: 19 лет 6 месяцев
Откуда: Красноярск
Благодарил (а): 567 раз
Поблагодарили: 1752 раза

Re: PHP Warning

Сообщение rxu »

romaamor писал(а): 08.04.2024 20:22 оптимальный вариант оставить всё как есть ?
С учетом того, что
Татьяна5 писал(а): 08.04.2024 20:30 в OneAll отдельная таблица пользователей
видимо да. Удаление может повлечь неработоспособность уже OneAll. Хотя это недоработка последнего, скорее всего.
Изображение
Аватара пользователя
romaamor
phpBB 3.0.7-PL1
Сообщения: 2515
Стаж: 13 лет 8 месяцев
Откуда: Одесса
Благодарил (а): 662 раза
Поблагодарили: 178 раз

Re: PHP Warning

Сообщение romaamor »

Татьяна5 писал(а): 08.04.2024 20:33 А вот так какой результат будет?
Тот же что и раньше. 15280 пользователей.
Оставлю всё как есть. Жалко конечно, что не удалось решить проблему малой кровью, но оставлю всё как есть.
Огромное всем спасибо за помощь.
Аватара пользователя
DimaU
phpBB 1.2.0
Сообщения: 14
Стаж: 14 лет 10 месяцев
Откуда: Москва
Благодарил (а): 9 раз

Re: PHP Warning

Сообщение DimaU »

Зацепил тему поиском)
Спрошу - Удалось победить проблему с предупреждениями? Как?

PS

Вчера тоже обнаружил вал сообщений в Журнале регистрации ошибок - error_log - вида
PHP Warning: Undefined array key "user_perm_from" in XXX/forum/includes/functions.php on line 4078
PHP Warning: Undefined array key "username" in XXX/forum/includes/functions.php on line 4030
PHP Warning: Undefined array key "user_timezone" XXX/forum/phpbb/user.php on line 663

Причина: Возможно некорректные операции с пользователями и тп
Расскажу как убрал (база небольшая).

1) Сделать дамп базы
2) Перейти в интерфейс phpmyadmin
3) По схеме найти все таблицы с полем идентификатором пользователя user_id, приблизительно так (можно зажаться еще на базу)

Код: Выделить всё

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'user_id' and TABLE_NAME like 'phpbb%'
Пару десятков таблиц получается (но глюки только в нескольких)
4) Поочередно с каждой таблицей из п3 выполнять запросы, рекомендованные в этой теме. Конечно, лучше их запихнуть в один динамический sql или видоизменить (для надежности), но суть такая, пример:

Код: Выделить всё

/* на место phpbb_profile_fields_data - вставлять таблицу из п3*/
SELECT tt.user_id, tt.*, u.*
FROM phpbb_profile_fields_data tt 
LEFT JOIN phpbb_users u ON u.user_id = tt.user_id 
WHERE u.user_id IS NULL

/* delete, если есть непустые результаты запроса выше */
delete FROM phpbb_profile_fields_data tt
where not exists(select 1 from phpbb_users u where u.user_id = tt.user_id) 
5) Смотрим в актуальный лог. Подобные PHP Warning исчезли.

Увы, не отследил по какой именно таблице нарушилась целостность (были значения user_id, отсутствующие в phpbb_users), повлиявшая на такие PHP Warning.

Вернуться в «Поддержка phpBB 3.3.x»