MySQL没有为一个用户名找到一行,但它存在吗?

时间:2015-04-09 15:20:31

标签: php mysql

我有一个用于登录的PHP / MySQL脚本,它适用于其他人,但它不适用于我的用户名,它告诉我没有找到该用户名的帐户。我甚至尝试在数据库的users表中创建一个新行,并且使用它可以正常登录,但由于某种原因,我的名字无效。

 if($submit)
   {
        if($username && $password)
        {
            $passhash = strtoupper(hash("whirlpool", $password));

            $query = mysql_query("SELECT name, password FROM users WHERE name = '$username'");

            if(mysql_num_rows($query) == 1)
            {
                while($row = mysql_fetch_assoc($query))
                {
                    $dbusername = $row['name'];
                    $dbpassword = $row['password'];
                    if($username == $dbusername && $passhash == $dbpassword)
                    {
                        $_SESSION['username'] = $dbusername;
                        echo header('location: profile.php');
                    }
                    else echo "The password you entered was incorrect.";
                }
            }
            else echo "No account was found with that name!";
        }
        else echo "You must enter your name and password!";
    }

它只是回声“没有找到该名称的帐户!”。

这只是在我将网站上传到网络主机时才开始发生,它在本地工作正常。

1 个答案:

答案 0 :(得分:0)

我猜你的问题是引号,如果你使用简单的引号,它将变量作为文字。

$query = mysql_query("SELECT name, password FROM users WHERE name = '".$username".'");

无论如何,我建议你小心SQL中使用的所有变量以避免sql注入。