This question already has answers here:
How to generate a random, unique, alphanumeric string?
(29 个回答)
7年前关闭。
我有以下代码,让用户使用密码在网站上注册他/她的电子邮件,并返回一个唯一的密码。
我想为每个用户关联一个唯一的 URL(server.com/[unique-9-digit-alphanumeric-code],这样我就可以创建一个相对安全的管理页面,用户无需知道他们的密码即可访问该页面。
有没有一种简单的方法可以用 PHP 函数来做到这一点(它不必是 9 位数字,只是长而随机的),或者我是否需要生成我自己的随机字母数字字符串,然后将其发布到数据库中?您建议如何对此进行编码?
(29 个回答)
7年前关闭。
我有以下代码,让用户使用密码在网站上注册他/她的电子邮件,并返回一个唯一的密码。
<?
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>
我想为每个用户关联一个唯一的 URL(server.com/[unique-9-digit-alphanumeric-code],这样我就可以创建一个相对安全的管理页面,用户无需知道他们的密码即可访问该页面。
有没有一种简单的方法可以用 PHP 函数来做到这一点(它不必是 9 位数字,只是长而随机的),或者我是否需要生成我自己的随机字母数字字符串,然后将其发布到数据库中?您建议如何对此进行编码?
最佳答案
很多时候,当我需要一个唯一的字符串时,我会使用这个 mysql 查询:
选择 HIGH_PRIORITY UNIX_TIMESTAMP();
获得一个唯一的 10 位数字,如 1374517262,然后附加或添加字符。
关于php - 如何在 PHP 中创建随机唯一的字母数字字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17794433/
10-12 05:00