Разбирайтесь, вот Вам код с русскими комментариями...
Код:
<?php
// Если используется сервер IIS, потребуется установить переменные среды
if (substr($SERVER_SOFTWARE, 0, 9) == 'Microsoft' &&
!isset($PHP_AUTH_USER) &&
!isset($PHP_AUTH_PW) &&
substr($HTTP_AUTHORIZATION, 0, 6) == 'Basic '
)
{
list($PHP_AUTH_USER, $PHP_AUTH_PW) =
explode(':', base64_decode(substr($HTTP_AUTHORIZATION, 6)));
}
// Замените этот оператор if запросом к базе данных или чем-то подобным
if ($PHP_AUTH_USER != 'user' || $PHP_AUTH_PW != 'pass')
{
// Посетитель еще не передал деталей или его
// имя пользователя и пароль некорректны
header('WWW-Authenticate: Basic realm="Realm-Name"');
if (substr($SERVER_SOFTWARE, 0, 9) == 'Microsoft')
header('Status: 401 Unauthorized');
else
header('HTTP/1.0 401 Unauthorized');
echo '<h1>Уходите!</h1>';
echo 'Вам не разрешено просматривать этот ресурс.';
}
else
{
// Посетитель предоставил правильную информацию
echo '<h1>Вы на месте!</h1>';
echo 'Я полагаю, вы счастливы лицезреть эту секретную страницу.';
}
?>
з.ы. данные $PHP_AUTH_USER, $PHP_AUTH_PW хранятся в файле .htpass...
так что вот тебе и выход из проблемы http аутентификации...