0

我正在编写一个简单的 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";
}

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

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

4

2 回答 2

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

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

您忘记指定您想要的用户。

SELECT `username`, `value`
FROM `authtable`
WHERE `attribute` <=> 'password'
    AND `username` = '{$myusername}'
于 2013-06-06T09:59:12.643 回答
0

总是

表如:

username password  status    

userA    123456    active
userA    987654321 active 

和 sql 之类的:

select username, value from authtable where (password = ? and username = ?)
于 2013-06-06T10:02:40.170 回答