Базовая аутентификация под IIS

Serpent

Новичок
Базовая аутентификация под IIS

Есть функция, успешно работающая на платформе UNIX и Windows (под Denver), но не работающая под IIS:
PHP:
<?
function Pass() {
global $_SERVER;
$admin_login = "admin";
$admin_pw = "admin";
$authed=0;
if ($_SERVER['PHP_AUTH_USER'] == $admin_login and $_SERVER['PHP_AUTH_PW'] == $admin_pw)
  $authed=1;
if (empty($_SERVER['PHP_AUTH_USER']) or empty($_SERVER['PHP_AUTH_PW']))
  $authed=0;
  if ((!isset($_SERVER['PHP_AUTH_PW']) or !($authed))) {
    header('WWW-Authenticate: Basic realm="Авторизация"');
    header('HTTP/1.0 401 Unauthorized');
    echo "<b>Вы не можете получить доступ в этот раздел без авторизации.</b>\n";
     ?><!--META HTTP-EQUIV="refresh" content="4;URL=javascript:history.back()"--><?
    return false;
    exit;
  }
  else return true;
} // Pass
?>
Конкретно - нет реакции окна аутентификации на "admin" "admin" в полях логин и пароль.
Никто не знает, почему?
 

ZN

Новичок
Serpent
где нет переменной $_SERVER? в пхпинфо в разделе PHP Variables нету _SERVER?
версия пхп? значение track_vars?
 

Serpent

Новичок
Переменная есть. Не передаются значения из формы аутентификации. Причем только под IIS.
Версия 4.3.9. Вот выдержки массива _SERVER:
_SERVER["ALL_HTTP"] HTTP_CONNECTION:Keep-Alive HTTP_ACCEPT:image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */* HTTP_ACCEPT_ENCODING:gzip, deflate HTTP_ACCEPT_LANGUAGE:ru HTTP_HOST:<адрес домена.ru> HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2)
_SERVER["HTTPS"] off
_SERVER["SCRIPT_NAME"] /phpinfo.php
_SERVER["HTTP_COOKIE"] no value
_SERVER["AUTH_PASSWORD"] no value
_SERVER["AUTH_TYPE"] no value
_SERVER["AUTH_USER"] no value
А вот "track_vars" не нашёл.
 

slach

Новичок
скорее всего php под IIS подключен как CGI, соответсвенно там не работает базовая авторизация
в денвере все работает потому что там mod_php4
 
Сверху