1

我有两个登录面板。第一个只有用户名和密码,第二个是用户名、密码和两种用户类型作为单选按钮。如何为两个登录面板编写函数?我已经为此编写了以下函数。

function _check_user($username,$password,$user_type)
{
    $query= 'SELECT * FROM ' . USERS_TABLE . ' WHERE login =  $username AND  password =$password AND user_type =$user_type';
    $r = $db->query ($query);   
    if ($db->numrows($r)==1)
    {
        $f = $db->fetcharray($r);
        if ($f['login'] == $username && $f['password'] == $password && $f['user_type']=="$user_type")
            $logged = TRUE;
        else 
            $logged = FALSE;
    }
    else
    {
        $logged = FALSE;
    }
    return $logged;
}
4

2 回答 2

1

您可以使用默认参数值

function _check_user($username, $password, $user_type = null) { ... }

它将允许您使用带或不带$user_type参数的函数,例如

_check_user('user', 'pass');
_check_user('user', 'pass', 'type');

您将需要重构代码以考虑到$user_type可能是null.

$userAndPassValid = $f['login'] == $username && $f['password'] == $password;
$userTypeValid = true;

if ($user_type != null) {
    $userTypeValid = $f['user_type'] == $user_type;
}

if ($userAndPassValid && $userTypeValid) {
    // proceed
}
于 2013-05-25T09:47:28.760 回答
0

您必须仅在启动时设置 $user_type= "something" 的值。单击登录按钮后,您检查 $user_type 的值是否已预定义或更改,并相应地编写您的查询

于 2013-05-25T09:57:17.277 回答