No1さんので正解は出てますが、昔Webゲームを作ったとき、こんなのやりまし。
ソースを探したらでてきたので、該当部分を貼り付けます(笑)
昔のもので、でたらめですが、何かのお役に立てれば幸いです。
なお、これはsession_register =on の環境でコーディングしています。
そのあたりもご注意ください。
なおデバックをした記憶がありません(; ̄Д ̄)!
case "confirm":
$val=$_POST["val"];
for($i=0;$i<sizeof($val);++$i) {
$val[$i]=htmlspecialchars($val[$i]);
}
$val[2]=mb_convert_kana($val[2]);
session_register("val");
print_header("新規ユーザー登録確認",$bc);
create_user_check($val,"./create_user.htm","on");
$res=pg_query("select * from s_spe where id='$val[3]'");
$spe=pg_result($res,0,"name");
for($i=2;$i<=9;++$i) {
$mt=mt_srand((double)microtime()*1000000);
$p=mt_rand(700,1200);
$j=$i-2;
$pow[$j]=number_format(pg_result($res,0,$i)*$p/500);
}
pg_freeresult($res);
$pow[0]=$pow[0]+10;
session_register("pow");
$sex=($val[4]=="0")?"男":"女";
print<<<EOF
<center>
<font color="cc1111">以下の内容で良ければ「決定」をクリックしてください<p></font>
<form action="./create_user.htm?mode=send" method="post">
<table border="0" cellpadding="3" cellspacing="1" bgcolor="000000">
<tr>
<td bgcolor="ffccff" align="center">ユーザーID</td>
<td bgcolor="ccffff">$val[0]</td>
</tr>
<tr>
<td bgcolor="ffccff" align="center">メールアドレス</td>
<td bgcolor="ccffff">$val[1]</td>
</tr>
<tr>
<td bgcolor="ffccff" align="center">表示名</td>
<td bgcolor="ccffff">$val[2]</td>
</tr>
<tr>
<td bgcolor="ffccff" align="center">性 別</td>
<td bgcolor="ccffff">$sex</td>
</tr>
<tr>
<td bgcolor="ffccff" align="center">種 族</td>
<td bgcolor="ccffff">$spe</td>
</tr>
EOF;
for($i=0;$i<sizeof($pow);++$i) {
print<<<EOF
<tr>
<td bgcolor="ffccff" align="center">$p_pow[$i]</td>
<td bgcolor="ccffff" align="right">$pow[$i]</td>
</tr>
EOF;
}
print "</table><p>\n"
. "<input type=\"submit\" value=\"決定\" class=\"input\"><p>\n"
. "<a href=\"./create_user.htm\">やり直す</a>\n"
. "</form>\n"
. "</center>\n";
print_footer();
break;
case "send":
$host=gethostbyaddr($_SERVER["REMOTE_ADDR"]);
$passdb=uniqid("WEBRPG");
$pass_phrase=ereg_replace("http:","https:",$domain)."/create_user.htm?mode=regist&id=".$passdb;
$val=$_SESSION["val"];
$mes=<<<EOF
W┃e┃B┃・┃R┃P┃G┃(┃仮┃)┃
━┛━┛━┛━┛━┛━┛━┛━┛━┛━┛
新┃規┃ユ┃ー┃ザ┃ー┃登┃録┃┃
━┛━┛━┛━┛━┛━┛━┛━┛
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
*本返信メールは、メールサーバーが自動的に配送しております
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆Web RPGのユーザー登録を受け付けました。
下記のURIをクリックすると、本登録が可能です。
万が一、登録をした記憶がないときは、このメールを破棄してください。
【登録内容】━━━━━━━━━━━━━━━━━━━━━━━━━━
ユーザーID: $val[0]
表示名 : $val[2]
メール : $val[1]
ホスト : $host
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表示が折り返す場合は、全てをコピーしてブラウザに張り付けてください。
$pass_phrase
また、1時間以内に本登録を行わなければ、この仮登録は破棄されます。
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
Web RPG 運営
KusuKusu
Mail $mymail
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
EOF;
$val[1]=mb_convert_encoding($val[1],"SJIS","EUC-JP");
mb_language(ja);
mb_send_mail($val[1],"WebRPG登録",$mes,"From: $mymail\nReply-To: $mymail\nX-Mailer: WEBMAILER");
mb_send_mail($mymail,"WebRPG登録",$mes,"From: $val[1]\nReply-To: $val[1]\nX-Mailer: WEBMAILER");
$sql="insert into tmp_user values(";
for($i=0;$i<sizeof($val);++$i) {
$sql.="'".$val[$i]."',";
}
for($i=0;$i<sizeof($pow);++$i) {
$sql.="'".$pow[$i]."',";
}
$sql.="'".time()."','".$passdb."')";
pg_query($sql);
session_destroy();
header("location: ./create_user.htm?mode=exit");
break;
case "exit":
print_header("仮登録終了",$bc);
print<<<EOF
<center>
<table border="0" cellpadding="2" cellspacing="1" bgcolor="8789ff"><tr><td bgcolor="ffffff">
先程入力されたメールアドレスへ、本登録への手続きの仕方を配送しました。<br>
万が一、メールが届かない場合は、メールアドレスが間違っているか、あなたのメールアドレスでないものを登録されたと思われます。<br>
正しく入力したのにも関わらず、上手くいかない場合は <a href="mailto:$mymail">管理人</a>までお知らせ下さい。<br>
それでは本登録をしてゲームをお楽しみ下さい。
</td></tr></table><p>
<a href="./">戻る</a>
</center>
EOF;
print_footer();
break;
case "regist":
$id=$_GET["id"];
$pass=make_password(8);
$res=pg_query("select * from tmp_user where pass='$id'");
if(pg_numrows($res)=="0") {
print_header("error",$bc);
print_error($domain,"そのようなページは存在しないか、又は仮登録より一時間以上経過し、仮登録が削除されています。");
}else {
if(@pg_result($res,0,"time")+3600<time()) {
pg_query("delete from tmp_user where pass='$id'");
print_header("error",$bc);
print_error($domain,"そのようなページは存在しないか、又は仮登録より一時間以上経過し、仮登録が削除されています。");
}
print_header("本登録終了",$bc);
for($i=0;$i<pg_numfields($res);++$i) {
$val[$i]=@pg_result($res,0,$i);
}
}
pg_freeresult($res);
pg_query("begin");
pg_query("insert into myuser(uid,pass,name,mail) values('$val[0]','$pass','$val[2]','$val[1]')");
$cid=pg_result(pg_query("select id from myuser where uid='$val[0]'"),"id");
$sql="insert into u_char values('$cid','$val[3]','$val[4]','0','1','$val[5]','$val[5]','$val[6]','$val[6]','$val[7]','$val[8]','$val[9]','$val[10]','$val[11]','$val[12]','','')";
pg_query($sql);
pg_query("delete from tmp_user where pass='$id'");
pg_query("insert into u_eq(id,gold) values('$cid','100')");
pg_query("insert into u_exp(id) values('$cid')");
pg_query("insert into u_class(id,lev0) values('$cid','1')");
pg_query("insert into u_abi(id) values('$cid')");
pg_query("commit");
print<<<EOF
<center>
<table border="0" cellpadding="3" cellspacing="1" bgcolor="76d399">
<tr><td bgcolor="ffffff" colspan="2" align="center">本登録が終了いたしました。</td></tr>
<tr>
<td bgcolor="ffffff" align="center">ユーザーID</td>
<td bgcolor="ffffff">$val[0]</td>
</tr>
<tr>
<td bgcolor="ffffff" align="center">パスワード</td>
<td bgcolor="ffffff">$pass</td>
</tr>
<tr><td bgcolor="ffffff" colspan="2">
本データを失いますと、製作したキャラクターを使うことが出来なくなります。<br>
またお問い合わせがあっても答えられませんので、必ず何かに控えておいて下さい。<br>
それでは下記よりお入りください<br><br>
<center><a href="./">Enter</a>
</td></tr>
</table>
EOF;
print_footer();
break;
お礼
回答ありがとうございます。 私はセッションIDを利用してやるのかな?でも、どうやってやるのだろう?っと、悩んでおりました。 データベースを利用してやれば、良いんですね。