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

PHPの基本認証(Basic認証)のサンプルです。header関数を使用します。

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

目次

サンプル header関数
  初回表示時に表示されるダイアログ
  HTTPレスポンス

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と表示されます。
2つめの赤枠は上記コードの9行目の記述です。Basicの文字があります。

再度確認したいとき

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

 

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

関連の記事

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

△上に戻る