- Home ›
- PEAR入門 ›
- ユーザー認証(PEAR::Auth) ›
- HERE
認証済みかどうかの確認
広告
ここでは認証済みかどうかの確認を行います。Authクラスの「getAuth」メソッドを使います。
getAuth boolean Auth_HTTP::getAuth()
戻り値: ユーザが既に認証済みならば、関数は TRUE を返します。 そうでなけれ ば、FALSE を返します。
「start」メソッドで認証を開始した後で「getAuth」メソッドで認証が行われたかどうかを確認します。
実際の使い方は下記のようになります。
$authobj = new Auth("DB", $params, "loginFunction"); $authobj->start(); if ($authobj->getAuth()){ print("認証済みです"); }else{ print("認証されていません"); }
最初に表示された時は認証が行われていませんので「getAuth」メソッドはFALSEを返します。そして表示されたログインフォームでユーザー名とパスワードを入力しフォームを送信すると、フォームの送信先は同じページですので最後このページが表示され、認証が通っていれば「getAuth」メソッドは今度はTRUEを返します。
サンプルプログラム
ではこの段階で一度試してみます。まだデータベースの用意などはしていませんので実際の認証確認はできません。
<html> <head> <title>PHP認証テスト</title> </head> <body> <?php require_once "Auth/Auth.php"; function loginFunction($username, $status){ print("<form method=¥"post¥" action=¥"sample4-1.php¥">"); print("<table>"); print("<tr>"); print("<td>ユーザー名</td>"); print("<td><input type=¥"text¥" name=¥"username¥"></td>"); print("</tr>"); print("<tr>"); print("<td>パスワード</td>"); print("<td><input type=¥"password¥" name=¥"password¥"></td>"); print("</tr>"); print("<tr>"); print("<td colspan=¥"2¥"><input type=¥"submit¥"></td>"); print("</tr>"); print("</table>"); print("</form>"); } $params = array( "dsn" => "mysqli://authuser:authpass@localhost/authdb", "table" => "authtable", "usernamecol" => "username", "passwordcol" => "password" ); $authobj = new Auth("DB", $params, "loginFunction"); $authobj->start(); if ($authobj->getAuth()){ print("認証済みです"); }else{ print("認証されていません"); } ?> </body> </html>
上記をWWWサーバに設置しブラウザで見てみると下記のように表示されます。
では次のページで実際にデータベースを用意して認証処理を行ってみましょう。
( Written by Tatsuo Ikura )