ケケンタ
PHPで特定のページにだけBasic認証をかけたい……
今回はこのようなお悩みをお持ちの方に、PHPのプログラムだけでBASIC認証を実現するためのコードをご紹介します。
目次
PHPで特定ページにBASIC認証をかけるコード(全体)
/**
* パスワード保護したいページに以下のコードを記述
*/
// ログイン情報
define('USER_ID', 'kekenta');
define('PASSWORD', 'kekenta_pass');
// 認証処理
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header("WWW-Authenticate: Basic realm=\"My Realm\"");
header("HTTP/1.0 401 Unauthorized");
/**
* キャンセルが押下されたら実行する処理を記述
*/
exit;
} else {
if (
(isset($_SERVER['PHP_AUTH_USER']) && $_SERVER['PHP_AUTH_USER'] == USER_ID) &&
(isset($_SERVER['PHP_AUTH_PW']) && $_SERVER['PHP_AUTH_PW'] == PASSWORD)
) {
/**
* 成功したときの処理を記述
*/
} else {
/**
* 失敗したときの処理を記述
*/
exit();
}
}
ポップアップの様子
参考:https://www.php.net/manual/ja/features.http-auth.php
ケケンタ
簡単ではありますが、以上となります!
この記事が参考になったなら何よりです。
またどこかの記事でお会いできるのを楽しみにしております。