Php 密码验证返回false
请帮帮我,我有点不明白为什么这不起作用 问候,,Php 密码验证返回false,php,mysql,Php,Mysql,请帮帮我,我有点不明白为什么这不起作用 问候,, Ross存储哈希密码的列不够长。它应该超过60个字符,我建议VARCH(255)或TEXT考虑将来对password\u hash()函数的任何更改,这可能会创建更长的哈希 警告 您不应该将密码存储在会话数组中,因为它会暴露密码被劫持的可能性 说了解有关的语句 “没有sql注入,因为我的变量上有一个函数,可以将输入的文本转换为纯文本。mysqli\u real\u escape\u string($con,$\u POST['registerEm
Ross存储哈希密码的列不够长。它应该超过60个字符,我建议
VARCH(255)
或TEXT
考虑将来对password\u hash()
函数的任何更改,这可能会创建更长的哈希
警告
您不应该将密码存储在会话数组中,因为它会暴露密码被劫持的可能性
说了解有关的语句
“没有sql注入,因为我的变量上有一个函数,可以将输入的文本转换为纯文本。mysqli\u real\u escape\u string($con,$\u POST['registerEmail']);
”
甚至都不安全存储哈希密码的列不够长。它应该超过60个字符,我建议
VARCH(255)
或TEXT
考虑将来对password\u hash()
函数的任何更改,这可能会创建更长的哈希
警告
您不应该将密码存储在会话数组中,因为它会暴露密码被劫持的可能性
说了解有关的语句
“没有sql注入,因为我的变量上有一个函数,可以将输入的文本转换为纯文本。mysqli\u real\u escape\u string($con,$\u POST['registerEmail']);
”
甚至都不安全此函数的作用密码\u验证此函数的粘贴内容。。。sql注入的另一个观察结果是,密码存储的列宽度超过60个字符长?$password变量来自何处。还显示数据库架构中的“了解”语句。即使是这样也不安全!不要将密码存储在会话变量中!此函数的作用密码\u验证此函数的粘贴内容。。。sql注入的另一个观察结果是,密码存储的列宽度超过60个字符长?$password变量来自何处。还显示数据库架构中的“了解”语句。即使是这样也不安全!不要将密码存储在会话变量中!
$query = "SELECT * FROM users WHERE username = '$username'";
$query_run = mysqli_query($con, $query);
if(mysqli_num_rows($query_run) < 1)
{
header("Location: ../index.php?login=username");
exit();
}
else
{
if($row = mysqli_fetch_assoc($query_run))
{
//deshashing password
$hashedPwdCheck = password_verify($password, $row['password']);
if($hashedPwdCheck == false)
{
header("Location: ../index.php?login=false");
exit();
}
elseif($hashedPwdCheck == true)
{
//login the user here
$_SESSION ['u_name'] = $row['username'];
$_SESSION ['u_email'] = $row['email'];
$_SESSION ['u_password'] = $row['password'];
$_SESSION ['u_id'] = $row['userid'];
header("Location: ../index.php?login=success");
exit();
else
{
//hashing password
$hashedPwd = password_hash($password, PASSWORD_DEFAULT);
//insert the user into the database
$query = "INSERT INTO users (username, email, password) VALUES ('$username', '$email', '$hashedPwd');";
mysqli_query($con, $query);
header("Location: ../register.php?register=success");
exit();
}