phpbb_check_hash и кириллический пароль

Проблемы с установкой или работой 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) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
EXEMOK
phpBB 1.4.0
Сообщения: 30
Стаж: 18 лет 8 месяцев
Откуда: Минск
Благодарил (а): 3 раза

phpbb_check_hash и кириллический пароль

Сообщение EXEMOK »

Пробую использовать базу паролей для авторизации в еще одном месте сайта.
Если пароль латинскими буквами - все ок
Если же пароль русскими буквами - то не проходит.

Скопировал functions.php и просто делаю

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

$sql = "SELECT * FROM $forumDbname.phpbb_users WHERE UCASE(username) = UCASE('$username') ";
...
$check = phpbb_check_hash($userpass, $row['user_password']);
В случае латинских букв авторизация проходит, в случае русских - нет.
Не могу понять, что я делаю не так :(
Помогите пжста :)
Последний раз редактировалось Sheer 09.08.2013 22:07, всего редактировалось 1 раз.
Причина: bb-код
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 633 раза
Поблагодарили: 2413 раз

Re: phpbb_check_hash и кириллический пароль

Сообщение rxu »

EXEMOK
Ну наверняка что-то с кодировкой в этом "еще одном месте сайта". проверьте, чтобы страница была в юникоде, им обработку результатов POST запроса сделайте как в phpBB (через request_var()).
Изображение
EXEMOK
phpBB 1.4.0
Сообщения: 30
Стаж: 18 лет 8 месяцев
Откуда: Минск
Благодарил (а): 3 раза

Re: phpbb_check_hash и кириллический пароль

Сообщение EXEMOK »

Разобрался. Хеш паролей из UTF8 получается.
Сделал

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

$userpass = iconv('windows-1251', 'utf-8', $userpass);
Надеюсь пароль китайскими буквами мне на форуме никто не поставит :)

Если у кого есть идея получше - буду рад выслушать :)
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: phpbb_check_hash и кириллический пароль

Сообщение Sheer »

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

$userpass =  request_var('userpass', '', true);
Параметр true в этом случае обязателен. Можно будет и китайскими ;)
Предварительно подключить (include) функцию request_var() из файла ./includes/functions.php
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
EXEMOK
phpBB 1.4.0
Сообщения: 30
Стаж: 18 лет 8 месяцев
Откуда: Минск
Благодарил (а): 3 раза

Re: phpbb_check_hash и кириллический пароль

Сообщение EXEMOK »

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

	$userpass =  request_var('userpass', '', true);
	var_dump($userpass);
Возвращает пустую строчку.
Саму форму как-нить переделывать нужно?

$_POST['userpass'] содержит при этом значение пароля.

Форма сейчас имеет вид:

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

<form action="./toto.php" method="post">
...
<input name="username" type="text" value="Пользователь" />
...
<input name="userpass" type="password" value="Пароль" />
...
</form>
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 633 раза
Поблагодарили: 2413 раз

Re: phpbb_check_hash и кириллический пароль

Сообщение rxu »

request_var() в таком варианте работает только с юникодом, поэтому перекодировать из 1251 в UTF8 всё равно надо до того, как.
Изображение
EXEMOK
phpBB 1.4.0
Сообщения: 30
Стаж: 18 лет 8 месяцев
Откуда: Минск
Благодарил (а): 3 раза

Re: phpbb_check_hash и кириллический пароль

Сообщение EXEMOK »

rxu писал(а):request_var() в таком варианте работает только с юникодом, поэтому перекодировать из 1251 в UTF8 всё равно надо до того, как.
В итоге пароль китайскими буквами все равно мимо пройдет?

Просто пришла жалоба, что не проходит пароль
Пароль у меня был вообще на символах типа !@#$.
ЗЫ. Вот такой код тоже не работает:

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

	$userpass = $_POST["userpass"];
	$userpass = iconv('windows-1251', 'utf-8', $userpass);
 	$userpass =  request_var('userpass', '', true);
Последний раз редактировалось EXEMOK 10.08.2013 13:34, всего редактировалось 1 раз.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 633 раза
Поблагодарили: 2413 раз

Re: phpbb_check_hash и кириллический пароль

Сообщение rxu »

EXEMOK
Выход есть - сделать саму страницу в UTF8.
Изображение
EXEMOK
phpBB 1.4.0
Сообщения: 30
Стаж: 18 лет 8 месяцев
Откуда: Минск
Благодарил (а): 3 раза

Re: phpbb_check_hash и кириллический пароль

Сообщение EXEMOK »

rxu писал(а):Выход есть - сделать саму страницу в UTF8.
Весь сайт перегонять в UTF8 не хочу. 1 страничку видимо не выйдет, там текст из базы.
Попробую на досуге через iframe сделать форму логина, видимо это минимальные возможные изменения.

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