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


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

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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:battan No.1

回答回数63ベストアンサー獲得回数1

アドレスはダミーです。

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


まず、フォームからメアド・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ベストアンサー獲得回数13

例えば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

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

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

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

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

回答リクエストを送信したユーザーはいません