モンスターカレンダー

« 2004年9月 »
123456789101112131415161718192021222324252627282930

2004年9月22日アーカイブ

Authでユーザ認証をしている。
ログイン機能と、ログイン中かどうかはマニュアルなどのサンプルで作った。(でもSmartyとからませて、エラーメッセージを出すのにはちょっと苦労したけど。。またこの話も書きたい)

ログイン中の場合に、その人の名前を出そうというお客さんの希望が出た。よく「XXさん、こんにちは」などとショッピングサイトででているやつ。
AuthでいうusernameはIDのことなので氏名とは違う。
要はユーザテーブルの他の情報を、ログイン時にとってこれればいいわけで。。。。

getAuthData() がそれか? 発行してみるが何も返ってこない。setAuthData()で、自力でセットした値だけを保持する器なのか?
だったら、ユーザテーブルにアクセスする時点で何か自分でコードを追加して保持させようか。

と、いろいろとあちこちにメッセージ入れて実行させて追って行って、、分かりました。
Authのインスタンス作成時にある指定をすると、ユーザレコードの内容を配列で取得し、getAuthData()で取れるようになるのでした。


$dsn=DATASET_NAME;
$params = array(
"dsn" => $dsn,
"table" => "user_table",
"usernamecol" => "user_id",
"passwordcol" => "pass",
"db_fields" => "*" //←ここ!!
);

$a = new Auth("DB", $params, "loginFunc", false);

$a->start();
$a->setIdle(300);
$a->setExpire(300);

$data = $a->getAuthData(); //これでユーザデータの配列がとれる

こんなのマニュアルのどこにも書いてないし。。ソースにしか書いてないし。。。。