Уважаемые пользователи!
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.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
hof
phpBB 1.4.0
Сообщения: 39
Стаж: 18 лет 4 месяца
Откуда: cccp
Благодарил (а): 4 раза
Поблагодарили: 2 раза
Контактная информация:

Как восстановить удаленного пользователя?

Сообщение hof »

Здравствуйте!

Я случайно удалил пользователя, как его восстановить? Сообщения пользователя теперь присвоены гостю.
Поиском по форуму нашел тему Поменять гостя на юзера но там - работа с phpbb 2.x, а у меня phpbb3, да и команда, описанная в посте не подходит. Phpmyadmin и бэкап двухдневной давности есть. Что делать?
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 15 лет
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 352 раза
Контактная информация:

Re: Как восстановить удаленного пользователя?

Сообщение MIT »

Для начала вытащи таблицы _users и _posts и положи их (по возможности) в базу форума под именами _users2 и _posts2 соответственно (или в другую базу, при невозможности, под оригинальными именами). Как будет готово — скажу что делать дальше.

Добавлено спустя 5 минут 23 секунды:
Но постарайся, всё же, упихать в одну, т.к. на шаред хостингах пользователи баз данных не всегда имеют доступ к другим базам...
hof
phpBB 1.4.0
Сообщения: 39
Стаж: 18 лет 4 месяца
Откуда: cccp
Благодарил (а): 4 раза
Поблагодарили: 2 раза
Контактная информация:

Re: Как восстановить удаленного пользователя?

Сообщение hof »

готово - _users2 и _posts2 взяты с бэкапа и залиты на хост, в таблицу с удаленным пользователем
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 18 лет 10 месяцев
Благодарил (а): 79 раз
Поблагодарили: 69 раз
Забанен: Бессрочно

Re: Как восстановить удаленного пользователя?

Сообщение MAzZY »

Я как-то проводил эксперимент с восстановлением пользователя. Но получается только в том случае, если сообщения удаленного пользователя имеют аватора не Гость, а какой-то другой ник.
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 15 лет
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 352 раза
Контактная информация:

Re: Как восстановить удаленного пользователя?

Сообщение MIT »

hof
Молодец. Далее:
1) Отключаем конференцию
2) Обязательно делаем бекап базы и убеждаемся в его целостности (например, Sypex`ом)
3) Выполняем запрос

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

INSERT INTO phpbb_users(user_id, user_type, group_id, user_permissions, user_perm_from, user_ip, user_regdate, username, username_clean, user_password, user_passchg, user_pass_convert, user_email, user_email_hash, user_birthday, user_lastvisit, user_lastmark, user_lastpost_time, user_lastpage, user_last_confirm_key, user_last_search, user_warnings, user_last_warning, user_login_attempts, user_inactive_reason, user_inactive_time, user_posts, user_lang, user_timezone, user_dst, user_dateformat, user_style, user_rank, user_colour, user_new_privmsg, user_unread_privmsg, user_last_privmsg, user_message_rules, user_full_folder, user_emailtime, user_topic_show_days, user_topic_sortby_type, user_topic_sortby_dir, user_post_show_days, user_post_sortby_type, user_post_sortby_dir, user_notify, user_notify_pm, user_notify_type, user_allow_pm, user_allow_viewonline, user_allow_viewemail, user_allow_massemail, user_options, user_avatar, user_avatar_type, user_avatar_width, user_avatar_height, user_sig, user_sig_bbcode_uid, user_sig_bbcode_bitfield, user_from, user_icq, user_aim, user_yim, user_msnm, user_jabber, user_website, user_occ, user_interests, user_actkey, user_newpasswd, user_form_salt, user_new, user_reminded, user_reminded_time) SELECT user_id, user_type, group_id, user_permissions, user_perm_from, user_ip, user_regdate, username, username_clean, user_password, user_passchg, user_pass_convert, user_email, user_email_hash, user_birthday, user_lastvisit, user_lastmark, user_lastpost_time, user_lastpage, user_last_confirm_key, user_last_search, user_warnings, user_last_warning, user_login_attempts, user_inactive_reason, user_inactive_time, user_posts, user_lang, user_timezone, user_dst, user_dateformat, user_style, user_rank, user_colour, user_new_privmsg, user_unread_privmsg, user_last_privmsg, user_message_rules, user_full_folder, user_emailtime, user_topic_show_days, user_topic_sortby_type, user_topic_sortby_dir, user_post_show_days, user_post_sortby_type, user_post_sortby_dir, user_notify, user_notify_pm, user_notify_type, user_allow_pm, user_allow_viewonline, user_allow_viewemail, user_allow_massemail, user_options, user_avatar, user_avatar_type, user_avatar_width, user_avatar_height, user_sig, user_sig_bbcode_uid, user_sig_bbcode_bitfield, user_from, user_icq, user_aim, user_yim, user_msnm, user_jabber, user_website, user_occ, user_interests, user_actkey, user_newpasswd, user_form_salt, user_new, user_reminded, user_reminded_time from phpbb_users2 WHERE user_id = {ID_ПОЛЬЗОАТЕЛЯ}
подставив вместо {ID_ПОЛЬЗОАТЕЛЯ} идентификатор удалённого пользователя (посмотреть можно по имени в базе _users2 (SELECT user_id, username FROM phpbb_users2 WHERE username = 'Имя пользователя')) и поменяв префикс таблиц, если у тебя он не phpbb.
4) Выполняй

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

UPDATE phpbb_posts SET (poster_id = {ID_ПОЛЬЗОАТЕЛЯ}, post_username = '') WHERE post_id IN (SELECT post_id FROM phpbb_posts2 WHERE poster_id = {ID_ПОЛЬЗОАТЕЛЯ})
предвариельно выполнив аналогичные правки
hof
phpBB 1.4.0
Сообщения: 39
Стаж: 18 лет 4 месяца
Откуда: cccp
Благодарил (а): 4 раза
Поблагодарили: 2 раза
Контактная информация:

Re: Как восстановить удаленного пользователя?

Сообщение hof »

3) нормально, пользователь восстановился
4) а вот сообщения не переносятся:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(poster_id = 8003, post_username = '') WHERE post_id IN (SELECT post_id FROM rec' at line 1
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 15 лет
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 352 раза
Контактная информация:

Re: Как восстановить удаленного пользователя?

Сообщение MIT »

Попробуй без скобок:

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

UPDATE phpbb_posts SET poster_id = {ID_ПОЛЬЗОАТЕЛЯ}, post_username = '' WHERE post_id IN (SELECT post_id FROM phpbb_posts2 WHERE poster_id = {ID_ПОЛЬЗОАТЕЛЯ})
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 17 лет 10 месяцев
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза
Контактная информация:

Re: Как восстановить удаленного пользователя?

Сообщение Палыч »

hof писал(а):near '(poster_
скобку уберите
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
hof
phpBB 1.4.0
Сообщения: 39
Стаж: 18 лет 4 месяца
Откуда: cccp
Благодарил (а): 4 раза
Поблагодарили: 2 раза
Контактная информация:

Re: Как восстановить удаленного пользователя?

Сообщение hof »

Браво, все получилось!

Спасибо большое! :D
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 15 лет
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 352 раза
Контактная информация:

Re: Как восстановить удаленного пользователя?

Сообщение MIT »

Но это не все необходимые действия.
Так, не измененными остались статистика последних сообщений для форумов и авторы тем.
hof
phpBB 1.4.0
Сообщения: 39
Стаж: 18 лет 4 месяца
Откуда: cccp
Благодарил (а): 4 раза
Поблагодарили: 2 раза
Контактная информация:

Re: Как восстановить удаленного пользователя?

Сообщение hof »

Нужно делать что-то еще?
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 15 лет
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 352 раза
Контактная информация:

Re: Как восстановить удаленного пользователя?

Сообщение MIT »

Для поправки авторов тем выполни что-нибудь типа

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

UPDATE phpbb_topics SET topic_poster = {ID_ПОЛЬЗОАТЕЛЯ}, topic_first_poster_name = (SELECT username FROM phpbb_users WHERE user_id = {ID_ПОЛЬЗОАТЕЛЯ}), topic_first_poster_colour = (SELECT user_colour FROM phpbb_users WHERE user_id = {ID_ПОЛЬЗОАТЕЛЯ}) WHERE topic_first_post_id IN (SELECT post_id FROM phpbb_posts WHERE poster_id = {ID_ПОЛЬЗОАТЕЛЯ})
а на статистику можно и забить, в общем-то, всё равно он быстро меняется.
hof
phpBB 1.4.0
Сообщения: 39
Стаж: 18 лет 4 месяца
Откуда: cccp
Благодарил (а): 4 раза
Поблагодарили: 2 раза
Контактная информация:

Re: Как восстановить удаленного пользователя?

Сообщение hof »

Сделал. Спасибо!
hof
phpBB 1.4.0
Сообщения: 39
Стаж: 18 лет 4 месяца
Откуда: cccp
Благодарил (а): 4 раза
Поблагодарили: 2 раза
Контактная информация:

Re: Как восстановить удаленного пользователя?

Сообщение hof »

хм, есть трабла - пользователь, заходя, видел сообщение, что "на этом сайте форумов нет".

Выставил ему глобальные права и локальные права на форумы. В итоге сообщение об ошибке пропало, но форумы он все-равно не видит.
Что это может быть?
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 15 лет
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 352 раза
Контактная информация:

Re: Как восстановить удаленного пользователя?

Сообщение MIT »

Права. Недонастроил, значит.
Закрыто

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