Intereting Posts

PHP_AUTH_USER не установлен?

По какой-то причине ни один из кода внутри

if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) { // When the above is set, the code that is here will execute of course } 

выполняется для меня. Когда я ввожу правильное имя пользователя и пароль, снова появляется окно подсказки для авторизации. Разве оба поля не будут «установлены», если они верны, и я нажимаю клавишу ввода? Но почему-то это не так. Что я могу делать неправильно? Спасибо.

Solutions Collecting From Web of "PHP_AUTH_USER не установлен?"

Существует «разумный способ» использовать HTTP Basic Auth в режиме CGI-mode: в использовании .htaccess

 RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

и в использовании PHP

 list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); 

попробуй это

 <IfModule mod_rewrite.c> RewriteEngine on RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] </IfModule> 

в файле .htaccess, который вам нужно будет поместить в корневой каталог

а потом

 list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); 

в начале ваших php-скриптов

Я использую Symfony 2.5.7 в PHP-PFM + Apache 2.4 под Ubuntu 14.04 и для работы BASIC_AUTH мне также необходимо правильно настроить Apache VirtualHost, добавив:

SetEnvIf Authorization "(. *)" HTTP_AUTHORIZATION = $ 1

как упоминалось здесь https://stackoverflow.com/a/17490827/435956

Попробуйте $_SERVER['REMOTE_USER'] . Это работает для меня на установке PHP 5.3 CGI + Apache.

В моем API-интерфейсе phpinfo () используется CGI / Fast CGI. Поэтому я решил проблему с написанием следующего в моем файле .htaccess RewriteEngine on RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L]

Если пользователю разрешен доступ с именем пользователя / паролем, проверьте,

 AuthType Digest 

имеет право в вашей конфигурации VHost / Directory / .htaccess.

Это было исправлено для моего варианта использования.

На серверах моего хоста используйте $_SERVER['REDIRECT_REMOTE_USER'] вместо $_SERVER['PHP_AUTH_USER']