【发布时间】:2017-04-22 20:53:14
【问题描述】:
我是 php 的初学者,也许问题很简单,但是当我尝试从我的数据库中获取哈希并让密码验证完成所有工作时,它总是给我错误,即使是正确的密码。我试图从数据库中复制粘贴哈希并将其放入密码验证中,它起作用了。
$sql="SELECT * FROM users WHERE username='$myusername'";
$result=mysqli_query($connection,$sql);
// Mysql_num_row is counting table row
$count=mysqli_num_rows($result);
// If result matched $myusername, table row must be 1 row
if($count==1){
//This must be the problematic place
$hash = mysqli_query($connection,"SELECT jelszo FROM users WHERE username =='$myusername'");
if(password_verify($myjelszo,$hash))
{
// Register $myusername, $myjelszo and redirect to file "login_success.php"
$_SESSION['username']= "myusername";
$_SESSION['jelszo']= "myjelszo";
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
【问题讨论】:
-
为什么不能从单个查询中获取所有详细信息
-
您错误地使用了密码哈希函数。你为什么不阅读用法。在函数中,将哈希密码作为第一个参数,输入密码作为第二个参数
标签: php passwords password-protection