【PHP関連】登録フォームをPHPで作っています。


この際に登録者にはメールアドレスや希望ID、パスワードなどを入力してもらい、いったんDBに保存します。その後メールアドレス先にメールを送りランダムなURLをクリックしたことによって初めてアクティブ(使用可能)にするにはどうすればいいのでしょうか?

よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/12/18 04:26:06
  • 終了:--

回答(2件)

id:battan No.1

battan回答回数63ベストアンサー獲得回数12005/12/18 05:21:51

アドレスはダミーです。

具体的なソースではなくフローですが・・・


まず、フォームからメアド・ID・パスを受け取りDBへ登録します。登録する時に登録フラグを「0」(仮登録)にしておきます。

登録確認メールに本登録HTMLアドレス?ID=IDのURLを入れて送信します。

本登録HTMLアドレスにアクセスされた時にIDがDBにあり、パスワードがあっていれば登録フラグを「1」(本登録)に書き換えます。

以降、ログイン時にID・パス・登録フラグをチェックすることで判断できると思います。

仮登録の時に受け付けた時間もDBへ登録しておいて本登録までの時間差をチェックするといいかもしれません。

具体的なソースが必要であれば環境などを教えていただければと思います。

id:esecua

回答ありがとうございます。

>具体的なソースが必要であれば環境などを教えていただければと思います。

以下でよろしいでしょうか。 DBはMySQL 4.0.2xで、PHPはVer 4.3.10、SENDMAIL のコマンドパスは /usr/sbin/sendmailです。また、システムの希望構成はIDやパスワード、メールアドレスなどをあらかじめ入力していただき指定先のメールアドレスにランダムなURLで構成されたURLをクリックしたことによってはじめてアクティブになるものです。

どうぞよろしくお願いいたします。

2005/12/18 12:07:39
id:kuippa No.2

くいっぱ回答回数1030ベストアンサー獲得回数132005/12/18 23:27:24

例えばcryptなどを使ってランダムURLを作成します。

URLといっても、特定のスクリプトにGETの引数として渡すとラクチンです。

http://www.a.b.c/geturl.php?code=XXXXXXXXXXX

みたいに。XXXXは希望IDごとにランダムです。

例えばこのGETの引数にIDなどもつけておいてあげれば、ID発行時につけたスクランブルコードと比較して、発行時につけられたアクセスコードでアクセスしたことがわかるようになりますので、そのIDの正式認証をしてあげるようにDBをかきかえてあげればいいのではないでしょうか。

id:esecua

大変申し訳ございませんが、実際に回答からシステムを構築することができず、有力な回答が得られなかったためキャンセルさせていただきます。

2005/12/20 21:40:07

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません