php аутентификация отображать текст неверные учетные данные - PullRequest
0 голосов
/ 24 февраля 2012

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

$user = array('Bob' => 'bob');
$pass = array('Bob' => 'pass');
$userSuccess = false;
$passSuccess = false;

if(!isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['PHP_AUTH_PW']))
{
    header('http/1.1 401 Unauthorized');
    header('www-authenticate: basic');
    echo "<h2> HTTP Error 401: Unauthorized Access </h2>";
    exit;
}
else
{
    foreach($user as $value)
        if($_SERVER['PHP_AUTH_USER'] == $value)
            $userSuccess = true;
    foreach($pass as $value)
        if($_SERVER['PHP_AUTH_PW'] == $value)
            $passSuccess = true;

    if(!$userSuccess || !$passSuccess)
    {
        header('http/1.1 401 Unauthorized');
        header('www-authenticate: basic');
        echo "incorrect stuff";    // I don't get why this line doesn't make it work.
        exit;
    }
}

Спасибо за ваше время.

1 Ответ

1 голос
/ 24 февраля 2012

Вам необходимо настроить страницу 401.Как это сделать, зависит от вашего сервера.

Например, если вы используете Apache и предполагаете, что он настроен на это, вы можете создать файл .htaccess с ErrorDocument 401 /errors/401.html.

Make /errors/401.html как хотите, и это должно отображаться при выдаче ошибки 401.

Если вы используете nginx, см. Nginx - настройка страницы 404 , за исключением того, что вы явно хотите настроить 401 вместо 404.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...