ログイン画面表示メソッド drawLogin
ユーザー別認証
次期バージョン PEAR::Auth 1.3.x
導入はとても簡単。
で、結構な種類の認証システムが利用可能。
(ノ・・)ン。。。。。。(((●コロコロッ
私はPEAR推進派。
何でもかんでもこれを使おうとします。
そして、手を抜きまくり。
(;^_^A アセアセ…
やっぱりPHPでものを作るときは簡単でないとね。
PEAR::DBについてはそこそこ見かけるようになったので
そっちに譲ります。スタックアスタリスク
で私も少し書いてますが。
(..;)(..;)
ユーザー認証はだいたい、
「プログラムが必ず呼び出す」ところに作成する。
それはPEAR::Auth
http://pear.php.net/package/Auth
も同じ。
このパッケージのおもしろいところは、
ユーザーリストのデータベースにはいろんなものが利用できます。
…で、ですねぇ。
一番手っ取り早く構築するのはやっぱりデータベース。
デフォルトでデータベースを利用することになっている。
PEARのデータベース抽象化クラスは
に対応している。
お好きな方をどうぞ。
ログイン画面はデフォルトで付属しています。
もちろん自身で作成することも可能です。
その場合
のいずれかをすればできます。
ただ、制約条件があって、
です。
ソースコードはだいたいこんな感じ
<?php require_once "Auth/Auth.php"; $params = array( "dsn" => "mysql://dozo:desu@yoroshiku/ne", // PEAR::DB参照 "table" => "myAuth", // テーブル名 "usernamecol" => "myUserColumn", // ユーザー名にあたるカラム名 "passwordcol" => "myPasswordColumn", // パスワードにあたるカラム名 "cryptType" => "none", // 暗号化(デフォルトはMD5) ); $a = new Auth("DB", $params /* , "LoginFunction" */);// インスタンス生成 $a->start();// 認証開始 if (!$a->getAuth()){// 結果を判別 echo "失敗"; exit(); } echo "成功"; session_regenerate_id(); // セッション偽装防止 ?>
バグ?
criptType = none の時でパスワードが数字のみの時、 型がint型になるため頭の0が使えなくなる。