目前正在开发一个登录脚本,该脚本允许存在具有相同用户名的多个用户。目前的计划是产生一个随机的秘密"用户ID代替实际的用户名。那么我将如何生成随机整数并检查是否已添加?
这是我对代码的尝试;但它似乎没有用,因为它似乎没有做任何事情。
$looptime = 100;
while ($looptime > 0) {
$userid = rand(0, 999999999);
$SQL = "SELECT * FROM Accounts WHERE username = '" . $userid . "'";
$result_id = @mysql_query($SQL) or die("DATABASE ERROR!");
$total = mysql_num_rows($result_id);
if (!$total) {
$looping = 0;
//CREATE THE ACCOUNT
mysql_query("INSERT INTO Accounts (id,username,password, email, money, activated) VALUES ('', '$username','$password', '$email', '0', '1')") or die("REGISTER ERROR!"); //1=account activated
//CONNECTED
echo "IMCONNECTED";
}
$looptime--;
}
编辑:代码/编号应该相当容易记住/在某处记下,因为用户可以查看和/或记下它以便进行帐户恢复。
答案 0 :(得分:1)
我建议使用UUID / GUID(不是整数)来最小化冲突的可能性,或使用标识列(非随机)来保证唯一性。它必须是一个整数,是否必须是随机的?
答案 1 :(得分:1)
您是否在表格中使用了整数?您可以将此ID附加到用户名。例如:MyUsername1234,MyUsername1245。