【发布时间】:2017-10-06 19:22:47
【问题描述】:
$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();
}
请帮忙,我有点困惑为什么这不起作用。
问候, 罗斯
【问题讨论】:
-
这个函数做什么 password_verify 粘贴这个函数的内容...另一个观察这有sql注入
-
您存储密码的列宽是否超过 60 个字符?
-
$password 变量从何而来。也显示您的数据库架构
-
不要将密码存储在会话变量中!