Bueno
Новичок
Проблема с md5 & mysql
Всем привет!
У меня появилась проблемка с Логином на сайте:
Как всё работает:
Есть файлик на сервере для добавления пользователя на сайт в mysql
add_user.php
//Всё нормально добавляется но залогиниться не получается
login.php
//$username, $password - Post из формы
Из-за чего может быть проблема?
Всем привет!
У меня появилась проблемка с Логином на сайте:
Как всё работает:
Есть файлик на сервере для добавления пользователя на сайт в mysql
add_user.php
PHP:
function mksecret($len = 20) {
$ret = "";
for ($i = 0; $i < $len; $i++)
$ret .= chr(mt_rand(0, 255));
return $ret;
}
//$wantusername,$wantpassword - POST iz formi
$secret = mksecret();
$wantpasshash = md5($secret . $wantpassword . $secret);
$editsecret = mksecret();
//Tut mi polu4aem hash iz porola i sekreta i dobavlaem v bazu
$ret = mysql_query("INSERT INTO users (username, passhash, secret, editsecret, email, status, added) VALUES (" .
implode(",", array_map("sqlesc", array($wantusername, $wantpasshash, $secret, $editsecret, $email, 'confirmed'))) .
",'" . get_date_time() . "')");
login.php
//$username, $password - Post из формы
PHP:
$res = mysql_query("SELECT id, passhash, secret, username FROM users WHERE username = " . sqlesc($username) . "");
$row = mysql_fetch_array($res);
if ($row["passhash"] != md5($row["secret"] . $password . $row["secret"])) - И в этой проверке hash почемуто не совпадает с тем который был создан при регистрации, раньше проблем не было всё работало без проблем (Недавно перешел на unicode обновил софт сервера - может это как-то связанно)
bark(error);