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

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

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

目次

header関数

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

サンプルのコード

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

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

if(isset($_SERVER['PHP_AUTH_USER']) && ($_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;
}
?>

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

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

 

HTTPレスポンス

初回表示時に表示されるダイアログでキャンセルボタンを押した時のHTTPレスポンスです。
1つめの赤枠はステータスコードです。上記コードの10行目をコメントにすると401 Unauthorizedと表示されます。空白にはなりません。
2つめの赤枠は上記コードの9行目の記述が表示されています。

 

リンク

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

関連の記事

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

 はまったらエンジニア特化型Q&Aサイト
【teratail(テラテイル)】で質問しましょう!


△上に戻る