カレッヂ |
質問者 TAKA
投稿日 8/15(木) 18:15:23
以前にも書き込みがあったのですが同じメールアドレスの二重登録を防ぎたく AUTOPWDプログラムを参照して作っていますがうまくいきません。 よろしくお願いします。
プロバイダ参照: |
回答者 やまだ
[削除]
投稿日 8/16(金) 00:14:44
データベースファイルに書き込む前に、以前のメールアドレスに一致しているものはないかどうか 確認するようにすれば、よいと思います。 その参照してつくった部分だけでも分かれば、アドバイスのしようもあります。 |
質問者 TAKA
[削除]
投稿日 8/16(金) 10:01:57
お返事ありがとうございます。 以下のような入力チェックを入れてみたのですが・・。 ご指導よろしくお願いします。 #入力チェック if ($FORM{'NAME'} eq '') { &error('入力エラー','名前を入力してください.','ブラウザの[戻る]ボタンを押して前の画面に移動してください.'); } if (!($FORM{'EMAIL'} =~ /(.*)\@(.*)\.(.*)/)) { &error('入力エラー','Eメールは半角で正しく記入してください.','ブラウザの[戻る]ボタンを押して前の画面に移動してください.'); } if (!open(DB,$file)) { &error('システムエラー','パスワード管理ファイルにアクセスできません.','復旧するまでお待ちください.'); } @MAIL = <DB>; close(DB); @PICKUP = grep(/^$FORM{'EMAIL'}\:(.+)$/,@MAIL); if (@PICKUP) { &error('登録済み','既に登録されています.','ブラウザの[戻る]ボタンを押して前の画面に移動してください.'); } |
回答者 やまだ
[削除]
投稿日 8/17(土) 00:10:23
えーと、まず、格納したデータの形をもうすこしよくみてましょう。 commaでくぎるcsvですよね。そこに注目してみるとうまくいくかもしれません。 例えば、そちらのコードをちょっといじって、 open(DB,$file) or &error('システムエラー','パスワード管理ファイルにアクセスできません.','復旧するまでお待ちください.'); @MADDRS=map{(split',',$_)[3]}<DB>; close DB; @PICKUP=grep(/^$FORM{'EMAIL'}$/,@MADDRS); @PICKUP and &error('登録済み','既に登録されています.','ブラウザの[戻る]ボタンを押して前の画面に移動してください.'); |
質問者 TAKA
[削除]
投稿日 8/17(土) 11:50:46
ありがとうございます。無事できました。 勉強しはじめたばかりなのでわからないことだらけなのですが 教えていただいたソースを今からじっくり解読していきたいと思います。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |