- 締切済み
pearの認証(Auth)ができません。
下記のサイトを参考にして認証サンプルを作成しました。 http://blueeyesblue.cocolog-nifty.com/technote/2007/09/pearauthmdb2-e2.html 下記のコマンドを実行してインストール済みかを確認しました。 pear list -------------------------------------------------- Auth 1.6.4 stable MDB2 2.5.0b3 beta MDB2で正常にデータベースに接続できるかを確認しました。 問題なく接続できました。 下記のテキストボックスに値を入力して[Login]ボタンをクリックしたら下記のエラーが出力されました。 ・Username ・Password ※ログイン画面はAuthのデフォルト画面を使用しています。 [エラー] login failed テーブルは下記のように作成しています。 CREATE TABLE TBL_USER ( no BIGSERIAL PRIMARY KEY, name VARCHAR(64) NOT NULL, mail VARCHAR(128) NOT NULL, password VARCHAR(128) NOT NULL, del VARCHAR(1) DEFAULT '0' NOT NULL, ins_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, ins_name VARCHAR(64) NOT NULL, upd_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, upd_name VARCHAR(64) NOT NULL ); ※テーブルのpasswordフィールドに格納している値は下記のように生成して追加しました。 mkpasswd -l 7 php -r 'echo md5(*******);' ※md5に指定している値はmkpasswdで出力された値を指定しました。 サンプルコードは下記の個所のみを変更しました。 $options = array( "dsn" => "pgsql://ユーザー名:パスワード@localhost/データベース名", "table" => "TBL_USER", "usernamecol" => "name", "passwordcol" => "password", ); 正直、何が原因なのかわからず困っています。 どうかご存知の方がいましたらアドバイスいただけませんでしょうか。 また今まで認証は1から自作していましたがpearの認証は使いやすいみたいな記事を読んだので使用しようと思いましたが・・・ 自作の認証とpearの認証ではどちらがいいのでしょうか。 ご意見等、何でも構いませんので教えていただけませんでしょうか。 宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- 1minn
- ベストアンサー率57% (52/90)
http://pear.plus-server.net/package.authentication.auth.auth.setfailedlogincallback.html setFailedLoginCallback で指定したコールバック関数は引数があるようです。 中身を見てみればなにか原因がつかめるかもしれませんよ。 if ( !$auth->getAuth() ) { $auth->atart(); } って感じになるんじゃないかと思うのですがどうでしょう? 個人的には独自で構築したことしかないので、逆に面倒くさそうなイメージを受けました。 パスワードはハッシュしているようですが、固定値になってしまいますので、難ありです。 PHPでPEARを使うならCrypt_Blowfishで暗号化してはいかがでしょうか? キーやベクトルの持ち方も自分で好きなように作れるので、個人的には自分で構築した方が楽ちんです。 無いよりマシ程度であれば、pear_Authでもいいかもしれませんけど・・・
お礼
回答ありがとうございます。 今まで調査していましたが私のレベルでは・・・ Pearはあきらめて、今まで通り自作でする事にしました。 お騒がせしました。 では、失礼します。