用户类型的登录面板问题

时间:2013-05-27 11:36:22

标签: php mysql login panel

我有两个登录页面,其中包含用户名,密码和代理作为用户类型。 第一个位于首页,第二个位于网站内。我写了下面这个函数,但它对我不起作用。

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;
 }

1 个答案:

答案 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;