web-dev-qa-db-ja.com

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

}

私のために実行されています。正しいユーザー名とパスワードを入力すると、認証のプロンプトボックスが再びポップアップします。両方のフィールドが正しく設定されていて、Enterキーを押した場合、両方のフィールドは「設定」されませんか?しかし、何らかの理由でそうではありません。何が間違っているのでしょうか?ありがとうございました。

38
Newbie_25

CGIモードPHPでHTTP基本認証を使用する「賢明な方法」があります。

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

およびPHP使用

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

これを試して

<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スクリプトの開始時

20
a.boussema

Ubuntu 14.04でPHP-PFM + Apache 2.4で実行されているSymfony 2.5.7を使用しています。 BASIC_AUTHが動作しています。次を追加して、Apache VirtualHostを正しく構成する必要があります。

SetEnvIf許可 "(。*)" HTTP_AUTHORIZATION = $ 1

こちらにも記載されているとおり https://stackoverflow.com/a/17490827/435956

11
thePanz

私のphpinfo()では、サーバーAPIはCGI/Fastcgiです。 .htaccessファイルRewriteEngine on RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L]に以下を書き込むことで問題を解決しました

3
Yerkezhan

$_SERVER['REMOTE_USER']。これは、PHP 5.3 CGI + Apacheインストールで動作します。

2
MrAnonymous

URLでユーザー名/パスワードを指定してユーザーアクセスが許可されている場合は、

AuthType Digest

vHost/Directory/.htaccess構成で資格があります。

これにより、私のユースケースで修正されました。

2
childno͡.de