我有两个登录面板。第一个只有用户名和密码,第二个用户名,密码和两个用户类型作为单选按钮。如何为两个登录面板编写功能?我已经为此写了以下函数。
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;
}
答案 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的值是预定义还是已更改,并相应地编写查询