この章ではユーザー認証について説明します。
ユーザー認証はユーザー名とパスワードを入力しないとwebサイトの中に入ることが出来ない仕組みのことを言います。
限定された人にだけwebサイトを公開したい場合に有効です。
以下のファイルはLesson56.phpです。
Lesson56.phpをLesson53.phpで取り込んでいます。 では初めから説明していきます。 =>とありますが、$_SERVERとはサーバから渡された情報を持った連想配列です。
サーバの情報とは今ページを見ているユーザの IP アドレス、実行中のスクリプトのファイル名、ユーザのブラウザ情報、どのリンクをたどって来たかの情報などのことを言います。
$_SERVERは連想配列と言いましたが、キーはPHPによりあらかじめ決められています。
例えばユーザのブラウザ情報を得たいのであればを使い、実行中のスクリプトのファイル名を得たいのであればを使います。
では戻りまして、ユーザー認証の例を説明します。
以下の箇所ではユーザー認証が必要なwebページにユーザーからのアクセスがあった時、$_SERVERに値が入っているかどうかを確認します。 初めのアクセスではユーザー名もパスワードも入力していないので($_SERVERには値が入っていないので)上のif文の箇所に入ります。
isset関数は値がセットされているかどうかを確認する関数ですが、issetの前には「!」が付いていますので、「値がセットされていないのであれば」と言う意味です。 =>header関数はHTTPヘッダを送る関数です。
以前、クッキーの箇所でリクエストとレスポンスの仕組みを説明しましたが、ユーザーがサーバにこのページに接続したいとリクエストする行為がHTTPリクエストで、そのHTTPリクエストに対してサーバ側がユーザーにレスポンスする行為がHTTPレスポンスです。
HTTPリクエスト、HTTPレスポンスの中で送られているのがHTTPヘッダです。 HTTPリクエストのヘッダは先ほど説明しました$_SERVERによって取得できます。$_SERVERでリクエストヘッダを取得するには以下のようにヘッダ名の前にを付けてください。 =>この中にと言う記述がありますが 、ユーザー側に認証を要求したのに未認証の場合に次のようなダイアログボックスの認証画面を表示させる機能を持ちます。 次に以下の説明をします。 =>これは上の認証画面のキャンセルボタンを押したときにを表示させます。
die関数はメッセージを出力し、プログラムを終了する関数です。
次に上の画面が出ましたら、ユーザー名、パスワードを入力します。
ここでユーザー名、パスワードを入力したのならば下のelse以下の処理に移ります。
ここで入力したユーザー名が に入り、パスワードがに自動的に入ります。
そして、その入力したものと決められているユーザー名、パスワードを照合して、正しければwebページに入ることが出来ます。
間違えたユーザー名やパスワードを入力したのならばもう一度先ほどの認証画面が現れます。