[PHP] Basic認証を記録する

PHPファイルがパスワード保護されたディレクトリに配置されているサイトで、ユーザがBasic認証を通過し、そのディレクトリ内の任意のPHPファイルに最初にアクセスしたときにログを取りたいというニーズあり。

考え方

Basic認証のユーザ名は$_SERVER[‘PHP_AUTH_USER’]で得られる。

「任意のPHPファイルに最初にアクセスしたとき」となると、認証入力直後にアクセスされたPHPファイルでだけログを取る必要があるけど、これはクッキーを使うことで実現できそう。Basic認証セッションはブラウザを終了することでクリアされるが、有効期限指定無しで作成したクッキーもブラウザの終了と共にクリアされるので都合がいい。

サンプルコード

クッキーを食っていなければ初回アクセス、既に食っていたら初回ではないと判断。