この際に登録者にはメールアドレスや希望ID、パスワードなどを入力してもらい、いったんDBに保存します。その後メールアドレス先にメールを送りランダムなURLをクリックしたことによって初めてアクティブ(使用可能)にするにはどうすればいいのでしょうか?
よろしくお願いいたします。
Yahoo! JAPAN
アドレスはダミーです。
具体的なソースではなくフローですが・・・
まず、フォームからメアド・ID・パスを受け取りDBへ登録します。登録する時に登録フラグを「0」(仮登録)にしておきます。
登録確認メールに本登録HTMLアドレス?ID=IDのURLを入れて送信します。
本登録HTMLアドレスにアクセスされた時にIDがDBにあり、パスワードがあっていれば登録フラグを「1」(本登録)に書き換えます。
以降、ログイン時にID・パス・登録フラグをチェックすることで判断できると思います。
仮登録の時に受け付けた時間もDBへ登録しておいて本登録までの時間差をチェックするといいかもしれません。
具体的なソースが必要であれば環境などを教えていただければと思います。
例えばcryptなどを使ってランダムURLを作成します。
URLといっても、特定のスクリプトにGETの引数として渡すとラクチンです。
http://www.a.b.c/geturl.php?code=XXXXXXXXXXX
みたいに。XXXXは希望IDごとにランダムです。
例えばこのGETの引数にIDなどもつけておいてあげれば、ID発行時につけたスクランブルコードと比較して、発行時につけられたアクセスコードでアクセスしたことがわかるようになりますので、そのIDの正式認証をしてあげるようにDBをかきかえてあげればいいのではないでしょうか。
大変申し訳ございませんが、実際に回答からシステムを構築することができず、有力な回答が得られなかったためキャンセルさせていただきます。
回答ありがとうございます。
>具体的なソースが必要であれば環境などを教えていただければと思います。
以下でよろしいでしょうか。 DBはMySQL 4.0.2xで、PHPはVer 4.3.10、SENDMAIL のコマンドパスは /usr/sbin/sendmailです。また、システムの希望構成はIDやパスワード、メールアドレスなどをあらかじめ入力していただき指定先のメールアドレスにランダムなURLで構成されたURLをクリックしたことによってはじめてアクティブになるものです。
どうぞよろしくお願いいたします。