Почему при использовании HTTP-аутентификации с PHP она не закрывается, пока я не нажму «Отмена»? - PullRequest
0 голосов
/ 02 августа 2011

В PHP я пытаюсь создать базовый логин аутентификации HTTP (который появляется). Насколько я понимаю, это делается через заголовок, и это мой заголовок:

header("WWW-Authenticate: Basic realm='Secure Area'");

После этого я проверяю, является ли введенное имя пользователя или пароль неправильными, и если это так, я выполняю ту или иную функцию:

if ($_SERVER["PHP_AUTH_USER"] != $username || $_SERVER["PHP_AUTH_PW"] != $password)
{
    quit();
}
else
{
    main();
}

Однако, когда я проверяю свой код, и я ввожу правильное имя пользователя и пароль и нажимаю «Войти», всплывающее окно входа в систему просто открывается снова, после второго открытия я могу нажать «Отмена», и это заставляет результат основной функции, но если я просто продолжаю нажимать «Войти», он просто продолжает появляться.

Кроме этого, он работает нормально. Если я нажму «Отмена», не введя правильно имя пользователя или пароль, он выйдет. Однако мне нужно решить проблему этого, казалось бы, «бесконечного входа».

Как я могу это исправить?

1 Ответ

3 голосов
/ 02 августа 2011

Я полагаю, вы повторно отправляете заголовок проверки подлинности даже после проверки подлинности пользователя.Переместите вызов header () в блок if вместо quit ().

...