За последние 24 часа нас посетили 18009 программистов и 1637 роботов. Сейчас ищут 2076 программистов ...

Почему не проходит базовая HTTP-аутентификация?

Тема в разделе "Вопросы от блондинок", создана пользователем Bax, 14 ноя 2007.

  1. Bax

    Bax Активный пользователь

    С нами с:
    13 ноя 2007
    Сообщения:
    3
    Симпатии:
    0
    Я работаю локально, у меня установлен DENVER и сервер Apache и PHP Version 4.4.2
    В книге описано как произвести базовую HTTP-аутентификацию.
    Что интересно ниже написанный скрипт работае на другой машине с такими же параметрами, а на моей нет!
    Пишет что
    Код (Text):
    1.  
    2. Notice: Undefined variable: PHP_AUTH_USER in z:\home\test.kz\www\http.php on line 14
    3. [Денвер: показать возможную причину ошибки]
    4. Warning: Cannot modify header information - headers already sent by (output started at z:\home\test.kz\www\http.php:14) in z:\home\test.kz\www\http.php on line 18
    5. Warning: Cannot modify header information - headers already sent by (output started at z:\home\test.kz\www\http.php:14) in z:\home\test.kz\www\http.php on line 22
    Подскажите пожалуйста, что делать!

    Код (Text):
    1.  
    2. <?
    3.   // Если используетсовлен ня устаня сервер IIS, потребуется установить переменные
    4.   // среды $PHP_AUTH_USER и $PHP_AUTH_PW
    5.   if (substr ($SERVER_SOFTWARE, 0, 9) == "Microsoft" &&
    6.        !isset($PHP_AUTH_USER) &&
    7.        !isset($PHP_AUTH_PW) &&
    8.        substr ($HTTP_AUTHORIZATION, 0, 6) == "Basic "
    9.      )
    10.   {
    11.     list($PHP_AUTH_USER, $PHP_AUTH_PW) =
    12.     explode ( " : " , base64_decode (substr ($HTTP_AUTHORIZATION, 6) ) ) ;
    13.   }
    14.   // Замените этот оператор if запросом к базе или чем-то подобным
    15.   if ($PHP_AUTH_USER != "user" || $PHP_AUTH_PW != "pass")
    16.   {
    17.     // Посетитель не передал деталей или
    18.     // его имя и пароль не верные
    19.     header ( 'WWW-Authenticate: Basic realm="Realm-Name" ');
    20.     if (substr ($SERVER_SOFTWARE, 0, 9) == "Microsoft")
    21.       header ("Status : 401 Unauthorized");
    22.     else
    23.       header ("HTTP/1.0 401 Unauthorized");
    24.     echo "<h1>Go Away!</h1>" ;
    25.     echo "You are not authorized to view this resource.";
    26.   }
    27.   else
    28.   {
    29.     // Посетитель предоставил правильную ин        формацию
    30.     echo "<h1>Here it is!</h1>";
    31.     echo "<p>I bet you are glad you can see this secret page.";
    32.   }
    33. ?>
     
  2. Anonymous

    Anonymous Guest