在PHP中生成唯一的用户ID

时间:2017-11-02 06:30:10

标签: php mysql laravel date format

我正在使用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; ?>">

1 个答案:

答案 0 :(得分:0)

如果您要在Laravel应用程序中实现UUID,它看起来确实更好:

https://medium.com/@steveazz/setting-up-uuids-in-laravel-5-552412db2088

  

UUID是“通用唯一标识符”的缩写,“通用唯一标识符”是一组包含字母和数字的36个字符。每一套都应该是独一无二的,每100年只有一次重复的机会,你可以阅读更多关于它的内容,并在这里和这里查看一些很酷的统计数据。

也不要在输入上加值 - 生成唯一的ID服务器端(在您的控制器/型号中)。

如果您在输入中保留唯一值,则不会阻止用户实际更改该值。