PearのAuthは、ユーザー認証や認証用のフォームを作成することまでできますが、 独自の認証フォームを使用することもできます。
<?php require_once "Auth/Auth.php"; function drawLogin($username, $status, $objAuth) { if (isset($_SERVER)) { $server = $_SERVER; } else { $server = $GLOBALS['HTTP_SERVER_VARS']; } echo '<form method="post" action="' . $server['PHP_SELF'] . '">' . "\n"; echo '<label for="username">ユーザー名:</label>'; echo '<input type="text" name="username">' . "\n"; echo '<label for="password">パスワード:</label>'; echo '<input type="password" name="password">' . "\n"; echo '<input type="submit" value="ログイン">' . "\n"; echo '</form>' . "\n"; } // Authオプション $params = array( 'dsn'=>"mysql://username:password@localhost/database", 'table'=>"usermng", // テーブル名 'usernamecol'=>"username", // ユーザ名の列名 'passwordcol'=>"password", // パスワードの列名 'cryptType'=>"md5", // パスワードの暗号化形式 ); $objAuth = new Auth("DB", $params,"drawLogin"); $objAuth->start(); if($objAuth->getAuth()) { echo "ようこそ!" . $objAuth->username . "さん<br>"; // メールアドレスを取得。 echo $objAuth->getAuthData('email'); } ?>
まず、ログイン用のフォーム(HTML)を出力する関数を作成します。 ここでのポイントは、ユーザーとパスワードの入力用要素のname属性は、username と password でなくてはいけないと言う事です。
次に、コンストラクタの引数にログイン用のフォーム(HTML)を出力する関数をコールバック関数として渡します。 受け取れる値は、ユーザー名、ステータス、Authオブジェクトになります。
ステータスとして定義されている定数は、次のようになります。
ログインの状態は、セッション情報に保持されます。 デフォルトでは、セッション内に_authsessionという配列を作成します。
Copyright 1997-2010 BBB All rights reserved.