Конвертація форуму SMF в UTF-8
Конвертація самого форуму відбувається без проблем, з панелі адміністратора.
Але, будьте готові що після конвертації SMF 1.1 в UTF-8 усі користувачі імена яких містили нелатинські символи отримуватимуть помилку “Невірний пароль”.
Виявилось, що пароль користувача зберігається у базі у вигляді хешу (SHA1) від слів “користувач+пароль”. Тому хеш від імені в кодуванні CP1251 став відрізнятись від хешу що визначається тепер, від імені в UTF-8. Ну не гади?
Судячи з усього проблема з визначенням контрольних сум паролів в SMF не нова. Я знайшов функцію, в якій описано альтернативні методи визначення хешу.
В файлі LogInOut.php, після $other_passwords = array(); треба вписати:
$other_passwords[] = sha1(iconv("UTF-8", "CP1251",strtolower($user_settings['memberName'])).$_REQUEST['passwrd']);
Тепер хеш з бази буде звірятись з поточним хешем, але порахованим так, ніби ім’я користувача в CP1251. Якщо пароль правильний – користувач увійде в систему а його хеш буде оновлено на правильний, розрахований в UTF-8.
Бажаєте залишити коментар?
- Ілюзія Адельсона. Клітинки A і B насправді мають однаковий колір: http://is.gd/elFqN
- Оновлення неофіційної прошивки на Android 2.2 для HTC Hero: http://is.gd/ejUsu #android #hero
- Емулятори радянських ігрових автоматів! :) http://15kop.ru/
Нове
Випадкове
Останні коментарі
- Buka до Рятуємось від спеки, підручними засобами ;)
- Dyak до Сервіс по-китайськи
- jin до Зламався телефон
- Микола до З Днем народження, Україно!
- tivasyk до Кепка «Ubuntu»













