Я пытаюсь использовать Basic HTTP Authentication и следовал примеру на странице руководства PHP. Но это не работает для меня. Переменная $_SERVER['PHP_AUTH_USER']
, похоже, не установлена. Когда пользователь пытается войти в систему, пользователю предлагается ввести новый диалог входа в систему. На сервере работает PHP 5.3.3, и я попытался с Google Chrome и Internet Explorer.Как я могу использовать базовую HTTP-аутентификацию в PHP?
Вот простой пример, который я использовал:
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="Jonas Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'User pressed Cancel';
exit;
} else {
echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as you password.</p>";
}
?>
Что не так? Как я могу использовать базовую HTTP-аутентификацию в PHP?
Вместо того, чтобы пытаться сделать это с помощью PHP, почему бы вам не использовать веб-сервер, например http://httpd.apache.org/docs/2.2/howto/auth.html – Phil
@James: Я думаю, что моя сеть хост использует Apache. – Jonas
@Phil: Тогда мой PHP-код будет лишен моего веб-сервера, и я не могу перейти на другой веб-сервер. Я хотел бы следовать стандарту HTTP. – Jonas