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
宜しくお願い致します。
お礼
似たような体験をしたとの事、驚きました。確かにパスワードは重要ですが、その自分にとっての重要度によって真剣になる度合いが違うと思います。 私は帰宅する訳にもいかなかったので、パスワードが決定するまでやはり時間を潰してしまいました。家族会議の内容を聞いていて、なんでこんなに慎重になる必要があるんだろう、凝って決めたらあとで思い出せないんじゃないか?と心配になってしまいました。 ご自身のパスワード決定は重要なものは10分程度ですね。参考にさせていただきます。 それから、余談ですが、ある人は、自らパソコンマイスターと豪語していた割には、「ショートカットアイコンって何?」と聞いてきました。 「貴方はWin98の頃からパソコンで遊んでいるのにそれがわからないのか?わざと言ってるでしょ?」と突っ込んだら、本当に知らなかった。「ああ。この曲がった矢印の付いているマークがそうか。」超脱力しました。 ご回答、ありがとうございました。