У меня есть страница PHP, которая регистрирует и регистрирует пользователей.Когда я включаю sha1, пользователь создается и зашифрованный пароль сохраняется в БД, но он не может войти в систему. Когда я закомментирую строку для шифрования как в разделе создания пользователя, так и в разделе входа, все работает.Вот мой код для создания пользователя:
function add_member($nick_name, $email_address, $password) {
global $db;
$password = sha1($password);
$query = "INSERT INTO members
(nick_name, email_address, password)
VALUES
('$nick_name', :email_address, :password)";
$statement = $db->prepare($query);
$statement->bindValue(':email_address', $email_address);
$statement->bindValue(':password', $password);
$statement->execute();
$statement->closeCursor();
}
Вот мой код для проверки пользователя:
function is_valid_member($email_address, $password) {
global $db;
$password = sha1($password);
$query = "SELECT member_ID
FROM members
WHERE email_address = :email_address AND password = :password";
$statement = $db->prepare($query);
$statement->bindValue(':email_address', $email_address);
$statement->bindValue(':password', $password);
$statement->execute();
$valid = ($statement->rowCount() == 1);
$statement->closeCursor();
return $valid;
}
Опять же, когда я закомментирую "$ password = sha1 ($пароль);"в обоих разделах все работает, но пароль является открытым текстом.
Спасибо!