2012-02-24 2 views
0

Я написал следующий PHP-код для выполнения базовой аутентификации. Я хотел бы знать, как я могу отображать текст, когда пользователь нажимает кнопку «ОК» и вводит неправильное имя пользователя или пароль. Я прокомментировал строку, которая, как я думал, заставит ее работать, но не сделала этого.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; 
    } 
} 

Благодарим за внимание.

+0

ли на нем что-нибудь? Вы получаете сообщения об ошибках? –

+0

Почему, на ваш взгляд, это не работает? Оно работает. Введите что-нибудь как пароль и/или логин три раза, и вы получите свой «неправильный материал» – Cheery

+0

Не для меня ... Я должен ввести неправильную вещь (хотя бы один раз), а затем нажать escape или кликнуть для ее отмены отобразить «неправильный материал». –

ответ

1

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

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

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

При использовании Nginx см Nginx - Customizing 404 page, за исключением того, вы, очевидно, нужно настроить 401 вместо 404.

+0

Спасибо за ваше предложение. Это работает. Вы знаете, почему мой код выше не работает? И, возможно, почему другой человек говорит, что это работает на них? –

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