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

[FAQ] Преобразование паролей при конвертации

Темы по наиболее часто задаваемым вопросам по phpBB 3.0.x. Читать в первую очередь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

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

[FAQ] Преобразование паролей при конвертации

Сообщение parfenov »

Вопрос:
Добрый день. Конвертировал базу 2.0.22 в RC7. После этого некоторые пользователи при вводе пароля получают такую фразу:
При обновлении конференции не удалось преобразовать ваш пароль. Вы можете запросить новый пароль. Если вы продолжаете испытывать трудности, то свяжитесь с администратором конференции.
Если в админке поменять данному пользователю пароль вручную, или поменять его ник на другой, это не помогает. Принудительное повторное подтверждение активации тоже ничего не меняет.

Ответ:
Такая ошибка существует по крайней мере в phpBB3RC7. Для исправления:
Открыть includes/ucp/ucp_activate.php
НАЙТИ

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

if ($update_password)
        {
            $sql_ary = array(
                'user_actkey'        => '',
                'user_password'        => $user_row['user_newpasswd'],
                'user_newpasswd'    => ''
            );

            $sql = 'UPDATE ' . USERS_TABLE . '
ЗАМЕНИТЬ НА

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

if ($update_password)
        {
            $sql_ary = array(
                'user_actkey'        => '',
                'user_password'        => $user_row['user_newpasswd'],
                'user_newpasswd'    => '',
                'user_pass_convert'     => 0,
            );

            $sql = 'UPDATE ' . USERS_TABLE . '
Затем выполнить следующий SQL-запрос:

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

UPDATE `phpbb_users` SET `user_pass_convert` = '0'
(измените префикс phpbb_ на соответствующий вашему форуму).
boriss
phpBB 1.4.2
Сообщения: 56
Стаж: 15 лет 6 месяцев

Сообщение boriss »

Хочу поделиться своим опытом по решению данной проблемы.
При конвертации, нужно выбрать английский язык, тогда всё конвертируется без проблем и старые пассы работают.
http://audi-club.ee - Русский форум Ауди в Эстонии!
Parshuto

Сообщение Parshuto »

англ. язык где выбрать? В конвертовалке или в старом форуме?
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2193
Стаж: 13 лет 4 месяца
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 340 раз

Re: [FAQ] Преобразование паролей при конвертации

Сообщение nissin »

После конвертации форума не работают пароли на кириллице.
Предлагаю небольшой хак для решения проблемы.
файл includes/auth/auth_db.php
Найти:

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

		set_var($password_new_format, stripslashes($password_old_format), 'string');
Заменить:

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

		set_var($password_new_format, stripslashes($password_old_format), 'string', true);
Найти:

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

			if ((strlen($row['user_password']) == 34 && (phpbb_check_hash(md5($password_old_format), $row['user_password']) || phpbb_check_hash(md5(utf8_to_cp1252($password_old_format)), $row['user_password'])))
				|| (strlen($row['user_password']) == 32  && (md5($password_old_format) == $row['user_password'] || md5(utf8_to_cp1252($password_old_format)) == $row['user_password'])))
Заменить:

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

			if ((strlen($row['user_password']) == 34 && (phpbb_check_hash(md5($password_old_format), $row['user_password']) || phpbb_check_hash(md5(utf8_to_cp1252($password_old_format)), $row['user_password']) || phpbb_check_hash(md5(iconv('utf-8','windows-1251',$password_old_format)), $row['user_password'])))
				|| (strlen($row['user_password']) == 32  && (md5($password_old_format) == $row['user_password'] || md5(utf8_to_cp1252($password_old_format)) == $row['user_password'] || md5(iconv('utf-8','windows-1251',$password_old_format)) == $row['user_password'])))
После этого пароли на кириллице воспринимаются нормально.
Для работы требуется поддержка iconv в php (как правило обычно включена).
Всё повторяется. nurlan.info
mazurik
phpBB 1.0.0
Сообщения: 1
Стаж: 9 лет 1 месяц

Re: [FAQ] Преобразование паролей при конвертации

Сообщение mazurik »

Друзья, я так и не понял, какой метод пользовать? Тот что в шапке, или то что в последнем посте???
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 10553
Стаж: 11 лет 4 месяца
Откуда: От Москвы 9 часов на Боинге
Благодарил (а): 1512 раз
Поблагодарили: 1315 раз

Re: [FAQ] Преобразование паролей при конвертации

Сообщение Пчелкин »

Верхняя правка хороша была до 3.0.7...значит нижняя...

Вернуться в «FAQ (phpBB 3.0.x)»