私は、ログイン/登録システムをPHPで作成しています。 パスワードの確認に大きな問題があります。 登録時にユーザーのパスワードをハッシュしますが、password_verify関数が機能していません。 あなたが見ることができる以下のコードでは、パスワードを取得するかどうかにかかわらず答えを得ようとしています...私はいつも "ERROR"を答えとして得ます... $ email = mysqli_real_escape_string($ con、$ _ POST [ Eメール']); $ password = mysqli_real_escape_string($ con、$ _ POST ['password']);パスワード確認機能が動作しない
$result=mysqli_query($con,"SELECT * FROM users WHERE
email='$email'");
$count=mysqli_num_rows($result);
$pass=mysqli_fetch_assoc(result);
if($count == 1)
{
if(password_verify($password,$pass['password']))
{
$_SESSION['email']=$email;
if($checkBox="on")
{
setcookie("email",$email,time()+3600);
}
header("location: profile.php");
}
}
else {
$error="Error with either the email or the password";
}
あなたはどのような '$のpassword'と'を参照してテストできます$ pass ['password'] 'は実際には等しいですか? –
2つのことがありますが答えはありません。まず、セキュリティ上の問題を考慮し、バインドされた変数/パラメータをクエリに使用する必要があります。 2人のユーザーが同じパスワードを持っている場合、このクエリはそれらを区別しません。すべてのパスワードを異なるようにする1つの方法は、パスワードに追加されるランダムな塩を割り当てることです。 – gavgrif
thats私は上記のコードで何をしている...彼らは等価ではありません – njazi