2013-05-25 7 views
1

У меня две панели входа. 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; 
} 
+0

Надеюсь, вы не храните пароли в виде обычного текста. – JJJ

ответ

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 
} 
+0

Привет, Бадди. Я пробовал это и написал следующую функцию, но не работал для меня .. Не могли бы вы предложить мне какие-либо изменения, необходимые для ниже ... – user2334667

+0

Если бы вы могли объяснить **, как ** это не сработало вы ... – Bart

0

Вы должны установить значение для $ user_type = "something" только при запуске. После нажатия кнопки входа вы проверяете значение $ user_type предопределено или изменено и, соответственно, напишите ваш запрос

+0

Функция auth_check_user1 ($ login, $ password, $ agent = null) { $ userAndPassValid = ($ f ['login'] == $ login && $ f ['password'] == $ password) ; $ userTypeValid = true; \t \t \t \t если ($ агента = '') {приступить к чему-то} – user2334667

+0

ELSEIF ($ userAndPassValid && $ userTypeValid) { $ SQL = SELECT * FROM пользователей WHERE Войти = $ логин и пароль = $ паролю; $ r = $ db-> query ($ sql); if ($ db-> numrows ($ r) == 1) {Продолжить что-то} – user2334667

Смежные вопросы