Внимание!
Не все расширения для phpBB 3.2 совместимы с phpBB 3.3, главным образом из-за неверного синтаксиса в определениях сервисов (отсутствия обрамляющих кавычек - '...').
Перед обновлением необходимо убедиться в совместимости всех расширений.
Рекомендуется предварительно тестировать обновление на копии конференции (локально или на сервере).

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

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

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

[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
Стаж: 14 лет 7 месяцев

Сообщение boriss »

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

Parshuto

Сообщение Parshuto »

англ. язык где выбрать? В конвертовалке или в старом форуме?

Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2190
Стаж: 12 лет 6 месяцев
Откуда: Павлодар
Благодарил (а): 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
Стаж: 8 лет 3 месяца

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

Сообщение mazurik »

Друзья, я так и не понял, какой метод пользовать? Тот что в шапке, или то что в последнем посте???

Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 10319
Стаж: 10 лет 5 месяцев
Откуда: От Москвы 9 часов на Боинге
Благодарил (а): 1379 раз
Поблагодарили: 1309 раз

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

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

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

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