[PHP-users 9108] Re: ユーザ登録画面の作りかた

S.Okazaki php-users@php.gr.jp
Mon, 05 Aug 2002 14:34:49 +0900


こんにちは、岡崎です。
既に、辛口の意見がたくさん出ていますが、やはり、分からないものは
分からないですよね(^^;
私も経験ありますので、少しだけヒントを…

Formより、情報を取得(ここではEmail以外書きません)
$email=$_POST["email"];
//Emailについてのエラー処理。
//Emailのドメインを取得
$mail_host=substr($her_email,strpos($email,"@")+1);
$mxcheck=getmxrr($mail_host, $mxhosts);
if($email=="") {
    エラー処理
}else if(!eregi("^[-_.a-z0-9]+@([-_a-z0-9]+\.)+[a-z]{2,3}$", $email)) {
    エラー処理
}else if($mxcheck==false && $email !="") { 
    エラー処理
}
等々…Emailアドレスの処理は、つっこもうと思えばきりがないくらいつっこめ
ますが、私はだいたいこれ位をチェックしています。
詳しいことは、識者にお任せします(^^;
で、ここを突破すれば、mail関数やmb_sendmail関数などでメールを発送します。
その時に、ユニークなidなんかを作りますす。
$id==uniqid("id");
で、これをメール本文に書いて、クリックしてもらいます。
$body .="<a href=$_SERVER[PHP_SELF]?mode=confirm&id=$id>ここ</a>\n";
のように。
また、この情報をDBなり、テキストファイルなりに保存しておきます。
(ここではPostgreSQLとします)
$sql="insert into $tablename(name,email,id,…) 
      values('$name','$email','$id'…)";
pg_exec($sql);
のように。
で、ユーザーにメール本文に記載されているURLをクリックしてもらったときに、
下記を実行します。
case "confirm":
$id=$_GET["id"];
pg_exec("select * from $tablename where id=$id");
で、idが一致すれば、ユーザー登録処理を行えばいいと思います。

> ここでは
> ・E-mail が届いても返事が無かったとき
> ・E-mail が届かなかったとき
タイムアウト処理で言いと思いますが…
この辺りはよく分かりません。

それでは。


/_/_/_/_/_/_/_/_/_/_/_/_/_/
Japan Human Base 
Sotaro Okazaki
Email : okazaki@jp-hb.com
/_/_/_/_/_/_/_/_/_/_/_/_/_/