检查用户名/密码组合是唯一的(同时)


Checking username/password combination is unique (do-while)

我正在开发一个系统,我们需要为用户创建纯文本用户名/密码组合(这不是一个特别安全的系统,但它没有任何值得窃取的信息)。

我正在尝试创建一个do-while循环,该循环创建一个随机用户名/密码,然后检查数据库中是否有具有该确切组合的用户。如果有,它会重试。但是,当我运行以下代码时,我得到一个空白屏幕,甚至没有错误消息:

do {
    $un = "";
    for ($i = 0; $i < 5; $i++): $un .= chr(65 + mt_rand(0, 25)); endfor;
    $pw = rand(100000, 999999);
    $unpw_exists = mysqli_query($link, "SELECT id FROM table
                                        WHERE username = '$un' AND password = '$pw'");
} while (mysqli_num_rows($unpw_exists) > 0);
echo $un . " " . $pw;

PHP语法不正确:

for ($i = 0; $i < 5; $i++): $un .= chr(65 + mt_rand(0, 25)); end for;

尝试:

for ($i = 0; $i < 5; $i++): $un .= chr(65 + mt_rand(0, 25)); endfor;

或:

for ($i = 0; $i < 5; $i++) { $un .= chr(65 + mt_rand(0, 25)); }

我有一个错字。

我的for循环应该按如下方式结束:

endfor;

而不是

end for;