正確な解決策はありませんが、役立つアイデアがいくつかあります。
$user = !empty($_SERVER['PHP_AUTH_USER'])
? $_SERVER['PHP_AUTH_USER']
: $_SERVER['REMOTE_USER'];
…いいスタートです。を使用していない場合Basic Realm Authentication
は、 で遊ぶ必要があることに注意してDigest Realm Authentication
$_SERVER['PHP_AUTH_DIGEST']
ください。
最初に、変数がオーバーライドされず、適切な場所でチェックされないように注意する必要があります。誰かが入力しなかった場合、ユーザー名が空である可能性もあります。
認証が成功しなかった場合は、必ずConnection: close
ヘッダーを送信する必要があります。
現象をデバッグするには、ログ ファイルに書き込むか、次のテキストを含むメールを自分宛てに送信して、さらに調査する必要があります。
// variables from http://php.net/manual/en/language.variables.superglobals.php
$log = var_export(array($_SERVER, $_REQUEST, $_COOKIES, $_SESSION), true);
私はまた、cgi と組み合わせて、ユーザー名を含む他の変数セットがあることを読みました。
ユーザー情報を含む可能性のあるその他の変数 (上記の回答から取得):
$_SERVER['REDIRECT_HTTP_AUTHORIZATION']
$_SERVER['REDIRECT_REMOTE_USER']