Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Ошибка при постинге

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
noob_dev
phpBB 1.2.0
Сообщения: 13
Стаж: 3 года 9 месяцев

Ошибка при постинге

Сообщение noob_dev »

Произведенные изменения, после которых начались неполадки:
Форум старый, я далеко не первый "программист" который с ним работает. Как минимум известно что форум обновлялся несколько раз, с разных версий. В последний раз обновился до phpBB 3.3. Все прошло гладко, ошибка была и до этого (как говорят).

Версия phpBB:3.3

Используемые стили:
Несколько, но 99% пользователей сидят на basic.

Используемые расширения:
1 - Advertisement Management : 2.0.3
2 - External Link In New Window : 1.1.0
3 - QuickReply Reloaded : 2.0.0-beta4
4 - Scroll Page : 1.0.3
5 - Thanks for posts : 2.0.7-dev

Вроде все с поддержкой phpBB 3.3

Версия PHP: 7.4.7

СУБД: 10.5.4-MariaDB -- innodb UTF8-bin

Использовался ли поиск для решения проблемы
Всевозможные. Гуглить умеем - не гуглится. :(

Суть проблемы:
Иногда (говорят часто), запросы на постинг в темах отдают ошибку:

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

Fatal error: Uncaught Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: You have requested a non-existent service "". in
/vendor/symfony/dependency-injection/Container.php:331 Stack trace: #0
/phpbb/notification/manager.php(883): Symfony\Component\DependencyInjection\Container->get('') #1
/phpbb/notification/manager.php(872): phpbb\notification\manager->load_object('') #2
/phpbb/notification/manager.php(370): phpbb\notification\manager->get_method_class('') #3
/phpbb/notification/manager.php(295): phpbb\notification\manager->add_notification_for_user('notification.ty...', Array,Array) #4
/phpbb/notification/manager.php(266): phpbb\notification\manager->add_notification_for_user('notifi in

/vendor/symfony/dependency-injection/Container.php on line 331

Форум на VPS
1 - ISPmanager
2 - PHP-FPM
3 - Поиск форума на MySQL Fulltext

Могу выложить нужные конфиги.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12449
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2479 раз

Re: Ошибка при постинге

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

Проверьте обращение по нику, цитаты, расстановку "спасибок"
На что-то из этого ошибку выдаст?

Если при обращении по нику, то отключить его пока что в настройках, QuickReply под 3.3 нет
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: Ошибка при постинге

Сообщение Sheer »

Выполните запрос

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

SELECT * FROM phpbb_notification_types
и покажите результат
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
noob_dev
phpBB 1.2.0
Сообщения: 13
Стаж: 3 года 9 месяцев

Re: Ошибка при постинге

Сообщение noob_dev »

Sheer,

1 notification.type.topic
2 notification.type.quote
3 notification.type.bookmark
4 notification.type.post
5 notification.type.approve_topic
6 notification.type.approve_post
7 notification.type.pm
8 notification.type.topic_in_queue
9 notification.type.post_in_queue
10 notification.type.report_post
11 notification.type.admin_activate_user
12 notification.type.disapprove_post
13 notification.type.disapprove_topic
14 notification.type.group_request
15 notification.type.group_request_approved
16 notification.type.report_pm
17 notification.type.report_pm_closed
18 notification.type.report_post_closed
19 post_in_queue
20 report_post
21 topic_in_queue
22 boardtools.quickreply.notification.type.quicknick
23 gfksx.thanksforposts.notification.type.thanks
24 gfksx.thanksforposts.notification.type.thanks_remo...

Татьяна5,

Спасибо, да, действительно были жалобы на "обращение по никнейму". Пока отключу, посмотрим что будет..
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16373
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Re: Ошибка при постинге

Сообщение rxu »

noob_dev писал(а): 22.07.2020 3:46 19 post_in_queue
20 report_post
21 topic_in_queue
А должно быть

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

notification.type.post_in_queue
notification.type.report_post
notification.type.topic_in_queue
Изображение
noob_dev
phpBB 1.2.0
Сообщения: 13
Стаж: 3 года 9 месяцев

Re: Ошибка при постинге

Сообщение noob_dev »

rxu, а дело в этом, или все же в QuickReply?

Наверно это надо тестировать отдельно :)

Спасибо вам за ответы.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16373
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Re: Ошибка при постинге

Сообщение rxu »

noob_dev писал(а): 22.07.2020 4:19 а дело в этом, или все же в QuickReply
Попробуйте изменить напрямую в базе данных, очистить кэш, и проверяйте. Скорее всего, быстрый ответ не причем, так как в ошибке видно упоминание про уведомление ядра.
Изображение
noob_dev
phpBB 1.2.0
Сообщения: 13
Стаж: 3 года 9 месяцев

Re: Ошибка при постинге

Сообщение noob_dev »

rxu, оставлю пока быстрый ответ, и поправлю таблицу. Протестируем 2-3 дня и отпишусь.
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5284
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 793 раза

Re: Ошибка при постинге

Сообщение Siava »

QuickReply в phpbb 3.3 точно не будет вызывать таких проблем.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
noob_dev
phpBB 1.2.0
Сообщения: 13
Стаж: 3 года 9 месяцев

Re: Ошибка при постинге

Сообщение noob_dev »

Решилась проблема.

В таблице "phpbb_notification_types" восстанавливались строки (с новыми ID), поэтому я выставил поля "enable" в 0. А в таблице "phpbb_notification" удалил все зависимости по ID.
noob_dev
phpBB 1.2.0
Сообщения: 13
Стаж: 3 года 9 месяцев

Re: Ошибка при постинге

Сообщение noob_dev »

Через какое-то время ошибка всплыла опять. Значит "notification" зря чистил :(

Решилось так:

В ошибке в get_method_class передается пустое значение. Поэтому просто сделал проверку в нужном месте:

/phpbb/notification/manager.php
Со строки 385 (на момент решения стоял уже 3.3.1)

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

			foreach ($methods as $method)
			{	
				if ($method != '') {
					// setup the notification methods and add the notification to the queue
					if (!isset($notification_methods[$method]))
					{
						$notification_methods[$method] = $this->get_method_class($method);
					}

					$notification_methods[$method]->add_to_queue($notification);
				}
			}
Проверка "if ($method != '')".

Это не решение самой проблемы, но от последствий спасает.

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