php - 表单用户名和数据库用户名不一致,即使它们相同

标签 php mysql blowfish

我正在尝试使用河豚、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/

相关文章:

php - 使用 CATCH 查找一组字符中特定字符串的出现次数

php - MySql 从多个选择表单中查询结果

mysql - 无法连接到 '127.0.0.1' 上的 mysql 服务器

php - 如何编写 Laravel Eloquent whereBetween 方法与两列

java - 使用 JDBC 更新查询 mysql

C++ Blowfish 哈希实现

C#河豚加密/解密

php - 在 Fat Free 中使用命名空间的路由问题

php - 标签的奇怪 HTML 忽略

hash - BCrypt:如何确定两个哈希值是否指向相同的密码