PHP 基本認証のサンプル(header)

PHPのheader関数で、基本認証(Basic認証)を行うサンプルです。

確認環境
・PHP 7
・XAMPP 7
・Windows 10

目次

サンプル 基本認証を行う
  初回表示時に表示されるダイアログ
  HTTPレスポンス

基本認証を行う

header (ヘッダ文字列,オプション,レスポンスコード)
  • headerは、HTTPヘッダを送信する関数です。
  • ヘッダ文字列に「WWW-Authenticate: Basic realm=値」を記述することでユーザー名とパスワードの入力ダイアログが表示されます。基本認証(Basic認証)を行います。
  • 以下は、PHPマニュアルのheader関数のサンプルです。
    http://php.net/manual/ja/function.header.php

header関数で基本認証を行うサンプルです。

<?php
$user = 'aad';
$pass = 'bbb';

if($_SERVER["PHP_AUTH_USER"]==$user && $_SERVER["PHP_AUTH_PW"]==$pass){
	echo "<p>ようこそ、{$_SERVER['PHP_AUTH_USER']}さん</p>";

} else {
	header("WWW-Authenticate: Basic realm=\"test1\"");
	header("HTTP/1.0 401 Unauthorized - test");
	echo "<p>キャンセルボタンが押されました</p>";
	exit;
}
?>

5行目は、ユーザ名とパスワードの確認をしています。
9行目は、「WWW-Authenticate: Basic realm=値」で基本認証のダイアログを表示します。
10-12行目は、ダイアログのキャンセルボタンを押すと実行されます。
正しいユーザー名とパスワードを入力してログインボタンを押すと6行目の文言が表示されます。
10行目は、レスポンスのステータスコードです。

 

初回表示時に表示されるダイアログ

初回表示時に表示されるダイアログです。
正しいユーザー名とパスワードを入力してログインボタンを押すと上記コードの6行目の文字が表示されます。

 

HTTPレスポンス

初回表示時に表示されるダイアログでキャンセルボタンを押した時のHTTPレスポンスです。

1つめの赤枠はステータスコードです。401 Unauthorized - testと表示されます。
2つめの赤枠は上記コードの9行目の記述です。Basicの文字があります。

 

初期の状態に戻したいとき

一度認証された後に再度初期の状態に戻したい場合は、ブラウザを閉じるまたはコード10行目の401 Unauthorizedをクライアントに送信します。

 

以下は、PHPマニュアルのPHPによるHTTP 認証のリンクです。
http://php.net/manual/ja/features.http-auth.php

関連の記事

PHP セッションを確認する(session)
PHP クッキーを確認する(cookie)
PHP メールを送信するサンプル(mb_send_mail)
「HTTPリクエスト」と「HTTPレスポンス」

△上に戻る