PHP の HTTP 認証メカニズムは、PHP が Apache モジュールとして実行されている場合にのみ機能するため、この機能は CGI バージョンには適用されません。 Apache モジュールの PHP スクリプトでは、header() 関数を使用して「認証が必要」情報をクライアント ブラウザに送信し、ユーザー名とパスワードの入力ウィンドウをポップアップ表示させることができます。ユーザーがユーザー名とパスワードを入力すると、事前定義された変数 PHP_AUTH_USER、PHP_AUTH_PW、および AUTH_TYPE を使用して、URL を含む PHP スクリプトが再度呼び出されます。これらの 3 つの変数は、それぞれユーザー名、パスワード、認証タイプに設定されます。事前定義された変数は、$_SERVER または $HTTP_SERVER_VARS 配列に保存されます。システムは「基本」認証のみをサポートしています
$authorized = FALSE;
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
$authFile = file("./password.txt");foreach ($authFile as $login) {
list($username, $password) =explode(":", $login);
$password = trim($password);
If (($username == $_SERVER['PHP_AUTH_USER']) && ($password == md5($_SERVER['PHP_AUTH_PW']))) {
$authorized = TRUE;
休憩;
}
}
}// 許可されていない場合は、認証プロンプトまたは 401 エラーを表示します
if (! $authorized) {
header('WWW-Authenticate: Basic Realm="秘密の隠し場所"');
header('HTTP/1.0 401 Unauthorized');
print('適切な資格情報を提供する必要があります!');
終了します;
}?>