登录面板问题

时间:2013-05-25 09:43:43

标签: php

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

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

2 个答案:

答案 0 :(得分:1)

您可以使用default argument values

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
}

答案 1 :(得分:0)

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