ユーザーがパスワードを使用してWebサイトにメールを登録し、一意のピンを返す次のコードがあります。
<?
if($_POST['srSubmit'] && $_POST['srEmail'] && $_POST['srPass']) {
$conn = mysql_connect('localhost','','');
mysql_select_db("db_test",$conn);
while(1) {
$pin = rand(111111,999999);
$sel = mysql_query("SELECT * FROM formusers WHERE pin = '$pin'");
if(mysql_num_rows($sel) != 0) { continue; }
mysql_query("INSERT INTO formusers(email,password,pin) VALUES('".$_POST['srEmail']."','".$_POST['srPass']."','".$pin."')");
if(mysql_affected_rows()!=-1) {
echo "Pin:" . $pin;
exit;
} else {
echo "Existing email, try again<br />";
}
break;
}
}
?>
<form method="POST" action="">
<input type="email" name="srEmail" value="" placeholder="Email" /><br />
<input type="password" name="srPass" value="" placeholder="Password" /><br />
<input type="submit" name="srSubmit" value="Register" />
</form>
各ユーザー (server.com/[unique-9-digit-alphanumeric-code]) に固有の URL を関連付けて、ユーザーが必ずしもパスワードを知らなくてもアクセスできる比較的安全な管理ページを作成できるようにしたいと考えています。
PHP関数でこれを行う簡単な方法はありますか(9桁である必要はなく、長くてランダムである必要はありません)、または独自のランダムな英数字文字列を生成してデータベースに投稿する必要がありますか?これをどのようにコーディングすることをお勧めしますか?