- 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 )
PHPBook