QuickFormのaddElementを使ったパスワードについて教え
QuickFormのaddElementを使ったパスワードについて教えて下さい。
PHPとMYSQLとQuickFormを使い、WINDOWS VISTA環境にて会員機能の画面を作っています。
入力画面→確認画面→登録(更新)画面の構成で作っています。
◎目的(やりたいこと)
登録や更新情報の入力画面でパスワードの入力欄(入力必須)は入力する度に「*」が表示される。
入力内容の確認画面に遷移すると、パスワードが「*」表示されるのみの状態(変更不可)とする。
登録処理や更新処理を行うと実際に入力画面に入力したパスワードがmysqlにmd5計算されたものをもとに登録や更新を行う。
※現状では、登録画面にてユーザーIDの入力項目を設けてあり、ログイン画面にて登録したユーザーIDとパスワードでログインできていますが、今後もこの機能を使いたいです。
現状は下記のリンク先のものがソースとなりまして、パスワードは「*」表示ではなく、画面には入力した文字列が表示されてしまいますが、それ以外の
目的は達成(正常に動作)しています。
単純に入力項目の設定で(1)$form->addElement('text','password','パスワード');の行を
(2)$form->addElement('password','password','パスワード');に変更して実行すると、
確認画面で$form->freeze();を行い、(3)$form->addRule('password', 'パスワードを入力してください。', 'required', null, 'server');の行でパスワードが入力されていないものと判定されます。
そして、画面に「パスワードを入力してください。」の警告が表示されて登録や更新処理に進みません。
また、(1)を(2)に変更して、(3)の行をはずして実行すると、警告は表示されず、入力したパスワードがMD5計算されて、mysqlに登録されます。
しかし、ログイン画面に登録したユーザーIDとパスワード(MD5計算前のパスワード)を入力してログインしようとすると、「ユーザ名かパスワードが間違っています。」という警告が画面に出てログインできません。
※ログイン認証のロジックは変えていないので不思議です。この時ログイン認証でのauth->statusの値は-3でした。
ソースは、下記のリンクをクリックしたものです。
ソースのどこに問題があるのかが分からないので、関係のないロジックも含まれていて解読に苦しんでしまうと
思いますが、どうかお許し下さい。
分かる方がいましたら、ご教授下さい。
◎ソース
http://www.beauty-program.com/sample.txt
宜しくお願い致します。
お礼
回答のようにいろいろやってみましたが、うまくいかず2時間ぐらい格闘しました。そしてあちらこちらやたらにいじってみたら突如つながりました。考えてみるにパスワードの変更がうまく認識されていなかったように思います。原因はよくわかりませんがとにかく解決しました。ありがとうございました。