Intereting Posts

$ _SERVER пуст

Я попытался обновить версию php моего VPS, но это не сработало, и мой провайдер не помог мне, поэтому я понижаю его до предыдущей версии.

Теперь я работаю с PHP 5.2.17 (cli). В этой версии все работало правильно.

Начиная с этого обновления и понижения, переменная $_SERVER['PHP_AUTH_USER'] пуста. (В php.ini register_globals имеет значение «on», а $_SERVER['PHP_SELF'] работает правильно).

Он правильно спросит меня о моем имени пользователя и пароле, а также о успехе подключения, но мне нужно использовать $_SERVER['PHP_AUTH_USER'] .

Я пробовал $_SERVER['PHP_AUTH_USER'] , $_SERVER['AUTH_USER'] , гайка $_SERVER['REMOTE_USER'] не работает. (но я никогда не получаю никакой ошибки, просто пустое значение …)

Наконец, я нашел ответ благодаря «mbinette».

В моей конфигурации PHP обработчик PHP 5 был CGI, и этот тип аутентификации не работает с PHP CGI. Поэтому я изменил его на suPHP (который должен быть по умолчанию для APACHE).

Найдите здесь сообщение, объясняющее способ использования CGI и PHP_AUTH, но я пробовал, и он не работал.

Найдите здесь несколько объяснений о обработчиках php

Включен ли безопасный режим? Это может быть вашей проблемой …

Начиная с PHP 4.3.0, чтобы кто-то не написал сценарий, который показывает пароль для страницы, прошедшей проверку подлинности с помощью традиционного внешнего механизма, переменные PHP_AUTH не будут установлены, если для этой конкретной страницы включена безопасная режим включен. Независимо от того, REMOTE_USER может использоваться для идентификации пользователя, прошедшего проверку подлинности. Таким образом, вы можете использовать $ _SERVER ['REMOTE_USER'].

Источник: http://php.net/manual/en/features.http-auth.php