我正在尝试使用河豚、PHP 和 MySQL 创建登录
我在数据库中设置了一个用户,并在表单中输入了相同的信息。通过使用 echo 检查,代码一直到 if 语句(看到它们不匹配(即它进入 if 语句并失败并显示密码,因为它没有正确的用户(使用!=) 一双新鲜的眼睛会很棒。
谢谢
PHP代码
$query = "SELECT * FROM 'users' WHERE LOWER('username')=:username";
$stmt=$dbh->prepare($query);
$stmt->bindValue(':username',strtolower ($_POST['username']));
$stmt->execute();
if ($stmt->rowCount() == 1)
{
$row=$stmt->fetch(PDO::FETCH_ASSOC);
require('blowfish.php');
require('bcrypt.class.php');
$bcrypt = new Bcrypt(4);
if($bcrypt->verify($_POST['password'],$row['password']))
{
echo"logged in!! fish";
}
}
HTML代码:
<form method="POST" action="authorise.php">
Username: <input type ="text" name="username"/><br/>
Password: <input type ="password" name="password"/><br/>
<input type="submit"/>
</form>
最佳答案
查询中不需要单引号
$query = "SELECT * FROM users WHERE LOWER(username)=:username";
如果您使用任何保留关键字,您可能需要在列名和表名上使用反引号。当您在查询中使用字符串进行转义时,会使用引号。
关于php - 表单用户名和数据库用户名不一致,即使它们相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25793771/