mysql — генерирует уникальный идентификатор пользователя в переполнении стека

Я занимаюсь разработкой приложения с использованием Laravel, которое будет иметь функциональность для регистрации пользователей.
Я хочу предоставить индивидуальный уникальный идентификатор каждому пользователю (то есть: User_id = SM129).
Userid будет иметь следующие функции:
1) Идентификатор пользователя будет автоматически сгенерирован при регистрации.
2) Автоматически сгенерированный идентификатор пользователя должен быть проверен в базе данных на его уникальность.

В настоящее время я использую следующий код для создания уникального идентификатора пользователя на основе текущей даты. но есть вероятность двуличия на имя пользователя с этим. Пожалуйста помоги

<?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; ?>">

0

Решение

Похоже, на самом деле было бы лучше, если бы вы реализовали UUID в своем приложении Laravel:

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

UUID — это сокращение от «универсальный уникальный идентификатор», который представляет собой набор из 36 символов, содержащий буквы и цифры. Каждый набор должен быть уникальным, с возможностью повторения каждые 100 лет, вы можете прочитать больше об этом и посмотреть некоторые интересные статистические данные здесь и здесь.

Также не вводите значение в ваш ввод — генерируйте уникальный идентификатор сервера (либо в вашем контроллере / модели).

Если вы оставите уникальное значение во вводе, то ничто не остановит пользователей от фактического изменения этого значения.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector