PHP и с чем его едят....

[fly]

Sweet orange
Капец. Появилась еще одна проблема. Когда регистрируюсь ЛАТИНИЦЕЙ, авторизация проходит без проблем. А вот когда КИРИЛИЦЕЙ, авторизация не происходит. Как это исправить?
 

PainKiller

Пастафарианец
Команда форуму
Супер Модератор
С кодировкой все в порядке?
 

Пух

كنت بلهاء
Модератор
эм, а хранить пароль в таком виде это нормально?)
 

Wizo

New Member
да норм база)) никаких тебе base64 и каких md5 все просто и со вкусом)))
 

[fly]

Sweet orange
Ну тут как бы самая простая авторизация и не было цели шифровать пароль. Конечно это не грамотно, но что есть то есть:)
Wizo, и не нужно ёрничать, во-первых, как я уже писал, я не программист, а во-вторых, просто хотел понять как работает алгоритм регистрации и авторизации.
PainKiller, скорее всего в ней была проблема. Весь сайт на UTF-8, а база с данными на cp-1251. Но не переиграв, получил на выходе авторизацию по имейлу и паролю. Так даже удобней, потому как на базе имейлов либо закрывается доступ к закрытой части, либо открывается.
 

[fly]

Sweet orange
А вот теперь стало интересно. Как зашифровать - понял. А как провести авторизацию по зашифрованному паролю в md5 - не ясно. Кто подскажет?
 

Dre.hz

Active Member
Не зашифровать, а взять от него хеш (зашифрованное можно расшифровать, в отличии от хеша)

Возьмите хеш от пароля из запроса и сравните его с хешем из базы. Если равны, значит пароль подходит.
 

[fly]

Sweet orange
Ясно, что ничего не ясно. Наверное еще рано об защищенности говорить.
 

Пух

كنت بلهاء
Модератор
Dre вроде ясно все написал. Пользователь в форму вводит пароль - вы считаете md5 хеш этого пароля. (вроде в пхп функция md5($password) ). Сохраняете именно этот хеш в базу. Потом при авторизации пользователь снова вводит свой логин / пароль. Вы считаете хеш введеного пароля и сравниваете с хешем в базе. Совпало - авторизуете, нет - не авторизуете. Все просто.
 

PainKiller

Пастафарианец
Команда форуму
Супер Модератор
Да все просто. Вот пример. В принципе, должно работать, я просто на php давно ничего не писал=)
PHP:
$username=$_POST['username'];
$password=$_POST['password'];
/*тут шаманим магию, вынимаем данные откуда-то. Допустим, в базе лежат пароли уже в мд5, т.е. они туда заносились так $pass_md5=md5(password); и вот
собственно это дело и запизивалось в базу.
теперь мы вытащили из базы пассворд как строку, которая лежит в $pass_from_db; и имя пользователя username= $username_from_db
соответственно мы имеем переданные данные из формы $username и $password(см. выше).
*/
if($username==$username_from_db && md5($password)==$password_from_db){
    echo 'login successful';
}
else{
    echo 'login failure';
}
Как то так =)
 
Зверху