【发布时间】:2015-07-11 10:20:52
【问题描述】:
目前正在开发一个允许存在多个具有相同用户名的用户的登录脚本。当前的计划是生成一个随机的“秘密”用户 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--;
}
编辑:代码/号码应该很容易记住/记在某处,因为用户将能够查看和/或记下它以进行帐户恢复。
【问题讨论】:
-
为什么不使用标识列?数据库应该为你生成 id。
-
这可能无法回答问题,但为什么要生成随机整数?为什么不直接使用
uuid()? -
这个随机用户名是否需要令人难忘/可读,还是纯粹供您自己内部使用?
-
数据库生成的 ID 是有序的,我希望将 ID 随机化以帮助保持各种机密性。