我有一个用于登录的PHP/MMySQL脚本,它对其他人很好,但对我的用户名不起作用,它告诉我找不到使用该用户名的帐户。我甚至试着在数据库的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!";
}
它只是回应道:"没有找到那个名字的账户!"。
当我把网站上传到网络主机上时,这种情况才开始发生,它在本地运行良好。
我想你的问题在于引号,如果你使用简单的引号,它会将变量作为文本。
$query = mysql_query("SELECT name, password FROM users WHERE name = '".$username".'");
无论如何,我建议您小心处理SQL中使用的所有变量,以避免SQL注入。