この記事にはプロモーションが含まれています。

PHPでhtaccessをいじらずにBASIC認証を実装する方法【コード付き】

PHPでhtaccessをいじらずにBASIC認証を実装する方法【コード付き】

ケケンタ

PHPで特定のページにだけBasic認証をかけたい……

今回はこのようなお悩みをお持ちの方に、PHPのプログラムだけでBASIC認証を実現するためのコードをご紹介します。

目次

Web制作を仕事にしたいなら

こちらの記事で

Web制作コース独学プラン

についてご紹介しています。

 ̄ ̄ ̄

「仕事が忙しい」、「すぐに欲しい商品がある」という方、必見のサービス

 Amazon Prime 

by Amazon

日時指定便が「無料」で使えるので不在で商品を受け取れないという心配が無くなる

最短で注文した「翌日」に商品が届くので欲しいものがすぐ手に入る 
※ご注文の時間帯やお住まいの地域によります。

Amazonプライムの無料体験は「何度でも」利用可能

Amazonプライムの無料体験を何度も利用する方法

  • Amazonのカート画面で表示される「Amazon Primeの無料体験の案内」をクリック
  • 会員の自動更新を解除しておく=期限が来たら自動解約
  • 1~3ヶ月ぐらいするとAmazonのカート画面再度無料体験の案内が表示される

商品をカートに入れ、カート画面に行ったときに「無料体験の案内」が表示されていれば
1ヶ月間の無料体験を受け取ることが可能です。

ケケンタ

僕自身、過去に少なくとも3回は無料体験を利用しています。

※条件は不明ですが、解約後に一定期間が経過すると、再び「Amazon Prime無料体験の案内」が表示され、再度利用することが可能です。

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

ケケンタ

簡単ではありますが、以上となります!

この記事が参考になったなら何よりです。

またどこかの記事でお会いできるのを楽しみにしております。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次