私はpassword_verifyをデータベースの暗号パスワードと一致させようとしていますが、問題があります。一致しないようです。パスワードの確認bcryptデータベースと一致しないようです
私はすでにこれを検索していますが、VARCHARを最大長255で使用する必要があり、まだ動作しないことがわかりました。ここで
はコードです:
if(isset($_POST['bG9n']) && "bG9naW4") {
$email = $_POST['email'];
$pass= $_POST['pass'];
if($pass) {
$crypt = password_hash($pass,PASSWORD_BCRYPT);
$decrypt = password_verify($pass,$crypt);
}
if(password_verify($pass,$crypt)) {
echo "Sucess"; // It does echo Sucess
}
if (!empty($email) && !empty($pass) && filter_var($email,FILTER_VALIDATE_EMAIL) && password_verify($pass,$crypt)) {
$sql = "SELECT email, pass FROM clientes WHERE email ='$email' AND pass = '$decrypt' ";
$query = $DB_con->prepare($sql);
$query->execute();
$count = $query->rowCount();
if($count == 1){
$_SESSION['email'] = $email;
$_SESSION['pass'] = $decrypt;
header("Location: home.php");
}
else {
echo "<BR>Error";
}
}
は、おそらく簡単に修正ですが、私は間違っているものを見つけるように見えることはできません。
ありがとうございます。
、その後、データベースからそれを得ます。これはかなり間違っています。例えば。あなたはpassword_verifyがunhashedパスワードを返すという考えにどのようになったのか分かりません。 –
あなたはそれについて間違った方法をしています。クエリ 'AND pass = '$ decrypt''の中で' password decrypt = password_verify($ pass、$ crypt);をチェックし、あまりにも多くの 'password_verify()'を使ってみようとしています。 –