PHP简单登录错误

时间:2013-06-06 09:57:15

标签: php login

我正在编写一个简单的PHP登录脚本,但是在mysql查询中遇到了一些问题。 auth表的结构如下所示:

username attribute value

userA    password  123456
userA    status    active
userB    password  987654321
userB    status    active

这个结构看起来很愚蠢,但我必须保持这样的结构。

$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="select username, value from authtable where (attribute <=> 'password')";
$result=mysql_query($sql);
$myusername = $result['username'];
$mypassword = $result['value'];
$count=mysql_num_rows($result);

以下是结果的处理:

if($count==1){

session_register("myusername");
session_register("mypassword"); 
header("location:manager.php");
}
else {
echo "Login failed";
}

但是这个脚本总是返回登录失败,但我提供了正确的用户名和密码。

有人可以指出问题所在吗? 非常感谢。

2 个答案:

答案 0 :(得分:0)

select username, value from authtable where (attribute <=> 'password')

将为您提供与用户一样多的记录。

您忘了指定所需的用户。

SELECT `username`, `value`
FROM `authtable`
WHERE `attribute` <=> 'password'
    AND `username` = '{$myusername}'

答案 1 :(得分:0)

总是

表格如下:

username password  status    

userA    123456    active
userA    987654321 active 

和sql一样:

select username, value from authtable where (password = ? and username = ?)