ここにコードがあります。私は問題がbcryptだけであると思う。または何かが私を見つけるのを助けてください。PHPとMYSQLiでBCryptを使用する。ログインしようとしていますが、動作していません。
md5は今日死んでいます。だから、このbcryptの申し訳ありません。
<?php
if (isset($_POST['btnLogin']))
{
$username = $_POST['username'];
$password2 = password_hash($_POST['password'],PASSWORD_BCRYPT);
$username = stripslashes($username);
$username = mysqli_real_escape_string($conn,$username);
$result=$conn->query("SELECT * FROM admin WHERE USERNAME = '$username'") or die(mysql_error());
if(!$result){
echo "<script>alert('Incorrect User.');</script>";
}
else if(!$conn)
{
die("Could not connect to database.".mysql_error());
}
else
{
while($row = mysqli_fetch_array($result))
{
@$ID = $row['ID'];
@$FULLNAME = $row['FULLNAME'];
@$USERNAME = $row['USERNAME'];
@$PICTURE = $row['PICTURE'];
@$PASSWORD = $row['PASSWORD'];
@$USER_TYPE = $row['USER_TYPE'];
@$ACCESS_TYPE = $row['ACCESS_TYPE'];
}
}
if (@$ACCESS_TYPE == '1' && password_verify($PASSWORD, $password2))
{
$_SESSION['ID'] = $ID;
$_SESSION['FULLNAME'] = $FULLNAME;
$_SESSION['USERNAME'] = $USERNAME;
$_SESSION['PICTURE'] = $PICTURE;
$_SESSION['PASSWORD'] = $PASSWORD;
$_SESSION['USER_TYPE'] = $USER_TYPE;
$_SESSION['ACCESS_TYPE'] = $ACCESS_TYPE;
echo "<script>window.location.href = 'user_log_in.php' </script>";
}
elseif (@$ACCESS_TYPE == '2' && password_verify($PASSWORD, $password2))
{
$_SESSION['ID'] = $ID;
$_SESSION['FULLNAME'] = $FULLNAME;
$_SESSION['USERNAME'] = $USERNAME;
$_SESSION['PICTURE'] = $PICTURE;
$_SESSION['PASSWORD'] = $PASSWORD;
$_SESSION['USER_TYPE'] = $USER_TYPE;
$_SESSION['ACCESS_TYPE'] = $ACCESS_TYPE;
echo "<script>window.location.href = 'user_log_in_mod.php'</script>";
}
else{
echo "<script>alert('Incorrect Password!');
</script>";
}
}
?>
削除@それはすべてのエラーをSUPRESSし、表示されませんエラーが発生しました。 –
あなたの問題は、あなたが確認しようとしているパスワードをハッシュしていることです。それをしないでください。 'password_verify'の使い方の適切な例を正しく見てください。 – deceze