Authむずい。。
一日1時間くらいは学習時間に割り当てているが、むずい。
うちの頭どうなってるんだろ。orz
PEAR::Authを使っていろいろ調べておいていじってようやく出来たのがこれ。
ログインとログアウト機能のみ。
DBにはIDとパスワードを格納できるように作成。
DB作成は下記のページが参考になる。
PEAR::Authを使って認証する。 - カサヒラボ
<?php require_once "Auth/Auth.php"; function loginFunction($username, $status){ switch($status){ case AUTH_IDLED : case AUTH_EXPIRED : $msg = "ログイン期限が切れています。再度ログイン処理を行ってください。"; break; case AUTH_WRONG_LOGIN : $msg = "ユーザID/パスワードが間違っています。"; break; } require_once("login.php"); } //DB接続情報 $params = array( "dsn" => "mysql://username:password@localhost/db_name", "table" => "table_name", "usernamecol" => "username", "passwordcol" => "password" ); //DB接続 $authobj = new Auth("DB", $params, "loginFunction"); //認証スタート $authobj->start(); //ログアウト処理 if (isset($_POST["logout"])) { print<<<EOF ログアウトしました.もう一度ログインするときは<br /> <a href="{$_SERVER["PHP_SELF"]}">ここ</a>をクリックしてください.<br /> EOF; $authobj->logout(); exit; } //ログイン処理 if (!$authobj->getAuth()){ exit(); }else{ printf("ようこそ! %s さん<br>\n",$authobj->getUsername()); print<<<EOF <form method="POST"> <input type="SUBMIT" value="ログアウト" name="logout"> </form> EOF; } ?>
login.phpの内容。
<form method="POST" action="<?php print($_SERVER['PHP_SELF']) ?"> <font color="red"><?php print ($msg);?></font> <table border="0"> <tr> <th align="right">ユーザID:</th> <td><input type="text" name="username" size="12" maxlength="18" /></td> </tr> <tr> <th align="right">パスワード:</th> <td><input type="password" name="password" size="12" maxlength="28" /></td> </tr> <tr> <td colspan="2"> <input type="submit" value="ログイン" /> </td> </tr> </table> </form>
"dsn" => "mysql://username:password@localhost/db_name", "table" => "table_name",
実際の上記のコードを動かすためには
DB接続のIDが"username"、パスワードが"password"、DB接続URLが"localhost"、データベース名が"db_name"に入れ替えておく。
"table_name"はテーブル名。
テーブル作成方法はググればいいので省く。
今後の課題は新規ID登録画面の作成。
・登録情報はID、パス、メアド。
・一発登録でなく、登録メールによるURL認証による登録方式。
だれか参考になるコメントやトラバお願いしまーす!!
参考URL
ユーザー認証(PEAR::Auth) - PEAR入門
Manual :: 使用例
PEAR::Authを使って認証する。 - カサヒラボ