我正在开发一个使用Laravel的应用程序,它将具有注册用户的功能。我希望为每个用户提供定制的唯一id (即: User_id = SM129)。Userid将具有以下特性: 1)注册时将自动生成用户id。2)应检查自动生成的用户id是否具有唯一性。
目前,我正在使用以下代码生成基于当前日期的唯一用户id。但是在这个用户名上有一个欺骗的可能性。请帮帮忙
<?php
//creates a unique id for user id
echo "<br>";
$day = date('D');
$month = date('F');
$year = date('Y');
$fmonth = substr($month, 0, 1);
$fyear = substr($year, 2, 2);
$fday = substr($day, 0, 1);
$uniq = rand();
$funiq = substr($uniq, 0, 2);
$funiq1 = substr($uniq, 0, 1);
$joint= 'ST'.$fmonth.$fday.$funiq1.$fyear.$funiq ;
?>
<input type="text" name="username" value = "<?php echo $joint; ?>">发布于 2017-11-02 06:37:45
实际上,如果在Laravel应用程序中实现UUID,情况会更好:
https://medium.com/@steveazz/setting-up-uuids-in-laravel-5-552412db2088
UUID是“通用唯一标识符”的缩写,它由36个字符组成,包含字母和数字。每组都应该是独一无二的,每100年只有一次重复的机会,你可以阅读更多关于它的资料,并在这里和这里查看一些很酷的统计数据。
另外,不要在输入上添加值--生成唯一的ID服务器端(无论是在控制器/模型中)。
如果在输入中保留唯一的值,就没有什么能阻止用户实际更改该值。
https://stackoverflow.com/questions/47068958
复制相似问题