Здравствуйте, коллеги программисты и кодеры. Я разрабатываю расширенный сценарий входа на основе уже отличного сценария входа от zubrag.
Чего я пытаюсь достичь: Если пользователь является администратором, он войдет в систему. Если пользователь является обычным пользователем, он не войдет в систему.
Что происходит: пользователь входит в систему, даже если он не является администратором.
Вот фрагмент кода:
// user provided password
if (isset($_POST['access_password'])) {
$login = isset($_POST['access_login']) ? $_POST['access_login'] : '';
$pass = $_POST['access_password'];
if (!USE_USERNAME && !in_array($pass, $users)
|| (USE_USERNAME && ( !array_key_exists($login, $users) || $users[$login] != $pass ) )
) {
showLoginPasswordProtect("Incorrect username or password.");
}
Часть, с которой у меня проблемы:
elseif (array_key_exists($login, $admins)) {
showLoginPasswordProtect("User not an admin.");
}
Остальная часть кода:
else {
// set cookie if password was validated
setcookie("verify", md5($login.'%'.$pass), $timeout, '/');
setcookie("user", $login, 0, '/');
// Some programs (like Form1 Bilder) check $_POST array to see if parameters passed
// So need to clear password protector variables
unset($_POST['access_login']);
unset($_POST['access_password']);
unset($_POST['Submit']);
}
}
Массив имени пользователя и пароля:
$users = array(
'username' => 'password',
'administrator' => 'administrator-password'
);
Массив администратора:
$admins = array(
'administrator'
);
Теперь представьте все это вместе, и в чем может быть проблема? (Наверное, это очень просто, я просто не профессиональный кодер.)