无法使用密码登录\u验证

x6h2sr28  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(287)

我想做一个注册/登录系统。哈希密码保存到数据库成功,但当我试图登录它说“无效登录”,这意味着它没有验证密码。帮我个忙,这是我第一次使用密码哈希和验证
注册.php

<?php
include('AdminPanel/connect.php');

$name = $_POST['txt_name'];
$email = $_POST['txt_email'];
$password = password_hash($_POST['txt_pass'], PASSWORD_DEFAULT);
$radioVal = $_POST['Gender'];

if($radioVal == "Male")
{
    $radioVal = "Male";
}
else if ($radioVal == "Female")
{
    $radioVal = "Female";
}

$queryget = mysqli_query($con,"SELECT Email FROM signup WHERE Email='$email'") or die ("Query didnt work");
    $row = mysqli_fetch_array($queryget);

    $emaildb = $row['Email'];
    if($emaildb!=$email){
        echo"success";
        $insert = mysqli_query($con,"insert into signup (Name,Email,Password,Gender) values ('$name','$email','$password','$radioVal')");
    }else{
echo"Email already exists";
}

?>

登录.php

<?php

include('AdminPanel/connect.php');

session_start();

$email = $_POST['txt_email'];
$password = $_POST['txt_pass'];
$info = mysqli_query($con,"select count(*) from signup where Email = '$email' and Password = '$password'");

$row = mysqli_fetch_array($info);
if (($row[0] > 0) && password_verify($password, $row['Password']))
{

    $_SESSION['txt_email']=$email;
    echo "success";

}
else
{
    echo "Invalid login<br>Please re-enter your credentials";
}

?>
i7uaboj4

i7uaboj41#

您正在选择 count(*) :

$info = mysqli_query(
    $con, "select count(*) from signup where Email = '$email' and Password = '$password'"
);

但是引用一个字段:

$row['Password']

您需要选择(至少)字段,但请忽略密码条件,因为您获得的密码与数据库中的密码不匹配:

$info = mysqli_query(
    $con, "select * from signup where Email = '$email'"
);

另外,不要这样做,因为sql注入。

相关问题