Авторизация.

Mark&Ameli

Новичок
Авторизация.

Вопрос по авторизации.
Вот код:
PHP:
<?php
   header('WWW-Authenticate: Basic realm="My Realm"');
   header('HTTP/1.0 401 Unauthorized');
  if ($_SERVER['PHP_AUTH_USER']!="log" || $_SERVER['PHP_AUTH_PW']!="pass")
   {
   exit;
   } else {
           echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
           echo "<p>Вы ввели пароль {$_SERVER['PHP_AUTH_PW']}.</p>";
           };
?>
Так вот я понять не могу, зачем оно выплевывает окно с авторизацией три раза подряд? Тоесть ввел раз логин и пароль, а окно с авторизацией снова появляется. И вот так вот три раза....
 

SiMM

Новичок
Неужели сложно списать скрипт не совершая логических ошибок из мануала ([m]features.http-auth[/m])? Неужели сложно разобраться с логикой работы такого простого скрипта?
 

Mark&Ameli

Новичок
SiMM
Нет, скопирывать не сложно... но до меня ей богу не доходит, почему он три раза это окно выкидывает... Так что просветите деревенщину......
 

SiMM

Новичок
> но до меня ей богу не доходит, почему он три раза это окно выкидывает...
А ты код сравни с мануальным. И найди существенное отличие в последовательности выполняемых действий. Дальше, думаю, сам догадаешься.
 

Raul

Новичок
Re: Авторизация.

Автор оригинала: Mark&Ameli
Так вот я понять не могу, зачем оно выплевывает окно с авторизацией три раза подряд?
Это тебе повезло, что ты в IE скрипт проверяешь...
При этом варианте кода в других браузерах/с другими настройками этим окном можно любоваться
пока не надоест (до нажатия кнопки "Отмена")
 

Mark&Ameli

Новичок
Сравнил. Всеравно не доходит... Невижу я причин вылазить окну три раза...
 

Raul

Новичок
Автор оригинала: Mark&Ameli
Невижу я причин вылазить окну три раза...
из законов Мерфи (кажется)
Программа делает то, что вы сказали ей делать, а не то, что бы вы хотели чтобы она делала...
Что делает код после второго хидера. И когда он это делает?
 

Mark&Ameli

Новичок
Хватит издеваться...
PHP:
if (!isset($_SERVER['PHP_AUTH_USER'])) {
   header('WWW-Authenticate: Basic realm="My Realm"');
   header('HTTP/1.0 401 Unauthorized');
   echo 'Текст, отправляемый в том случае,
   если пользователь нажал кнопку Cancel';
   exit;
  } else {
   echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
   echo "<p>Вы ввели пароль {$_SERVER['PHP_AUTH_PW']}.</p>";
  }
и
PHP:
   header('WWW-Authenticate: Basic realm="My Realm"'); 
   header('HTTP/1.0 401 Unauthorized'); 
  if ($_SERVER['PHP_AUTH_USER']!="log" || $_SERVER['PHP_AUTH_PW']!="pass") 
   { 
   exit; 
   } else { 
           echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>"; 
           echo "<p>Вы ввели пароль {$_SERVER['PHP_AUTH_PW']}.</p>"; 
           };
(!isset($_SERVER['PHP_AUTH_USER']))-убрал, так как оно мне не надо...
 

Raul

Новичок
Автор оригинала: Mark&Ameli
Хватит издеваться...

(!isset($_SERVER['PHP_AUTH_USER']))-убрал, так как оно мне не надо...
Да никто не издевается...
Если ты хочешь готовое решение - так оно в мануале
Если ты хочешь разобраться почему у тебя не работает - попытайся вникнуть в ответы...

ТВОЕ else к какому if соотносится?
а в мануале?
 

Malius

Новичок
(!isset($_SERVER['PHP_AUTH_USER']))

разберись - для чего это выражение было в мануале и попобуй блок схему нарисуй чтоли, чтоб с ифами разобраться...
 

SiMM

Новичок
> Хватит издеваться...
Я не просил приводить код из мануала, я хотел знать, видишь ли ты разницу в двух скриптах и в чём она заключается. Судя по всему - не видишь.
За сим откланиваюсь - не вижу смысла продолжать - у человека уже истерика - издевательства мерещатся.
 
Сверху