Подтвердить что ты не робот

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

}

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

4b9b3361

Ответ 1

Существует "разумный способ" использовать HTTP Basic Auth в CGI-режиме PHP: в .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)));

Ответ 2

попробуйте это

<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-скриптов

Ответ 3

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

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

как также упоминалось здесь fooobar.com/questions/153825/...

Ответ 4

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

Ответ 5

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

Ответ 6

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

AuthType Digest

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

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

Ответ 7

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