我有两个登录页面,其中包含用户名,密码和代理作为用户类型。 第一个位于首页,第二个位于网站内。我写了下面这个函数,但它对我不起作用。
function auth_check_user1($login, $password, $agent )
{
$query= 'SELECT * FROM ' . USERS_TABLE . ' WHERE login = "' . $login . '" AND password ="' . $password . '", AND user_category ="' . $agent . '" LIMIT 1';
$r = $db->query ($query);
if ($db->numrows($r)==1)
{
$f = $db->fetcharray($r);
if ($f['login'] == $login && $f['password'] == $password && $f['user_category'] == $agent)
$logged = TRUE;
else
$logged = FALSE;
}
else
{
$logged = FALSE;
}
return $logged;
}
答案 0 :(得分:0)
这是因为您的查询中存在语法错误,您使用了不需要的逗号
$password . '", AND user_category ="' . $agent . '" LIMIT 1';
^this comma is not needed
您可能会遇到问题,因为您的查询中有引号,只需更改引号,如下所示
$query= "SELECT * FROM " . USERS_TABLE . " WHERE login = '" . $login . "' AND password = '" . $password . "' AND user_category ='" . $agent . "' LIMIT 1';
Furthermoere我不明白为什么你使用你的变量从数据库中选择一行,然后用if条件检查你的变量的返回数据。我认为这不是必需的,我会删除if条件,因为变量已在查询中检查过。所以你的代码看起来像这样
if ($db->numrows($r)==1) {
$logged = TRUE;
} else {
$logged = FALSE;
}
return $logged;