Создать уникальный случайный идентификатор

Через пару дней у меня возникла проблема с моей функцией, которая генерирует случайный идентификатор.

Вот функция:

public static function generatePin($max)
{
$key = "";
$possibilities = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$possibilities .= "abcdefghijklmnopqrstuvwxyz";
$possibilities .= "0123456789";
$i = 0;
while ($i <= $max) {
$detail = Tools::substr($possibilities, mt_rand(0, Tools::strlen($possibilities)-1), 1);
$key .= $detail;
$i++;
}
return $key;

В моем файле, когда я хотел использовать эту функцию, я делал это (работает отлично, так как много месяцев):

    $this->my_secure_pin = Tools::encrypt(Class::generatePin(7));

Теперь моя переменная «secure_pin» не может измениться .. У меня всегда один и тот же идентификатор, и он не хочет меняться, как раньше. Мой случайный идентификатор становится одним и тем же идентификатором для каждого запроса .. Grrrr

Вот пример:

1 / Я захожу на свою страницу, моя переменная «secure_pin» 622c7da19ec263b59f452b9fc5.

2 / Я обновляю свою страницу, моя переменная «secure_pin» всегда 622c7da19ec263b59f452b9fc5

3 / Я покидаю свою страницу и возвращаюсь к ней, моя переменная «secure_pin» всегда 622c7da19ec263b59f452b9fc5

4 / Если я очищаю кеш, моя переменная «secure_pin» меняется! ..

=> Итак, когда многие люди заходят на мою страницу, у них все тот же «secure_pin» … 🙁

Я хочу (как пару дней назад) secure_pin для всех, кто заходит на эту страницу, меняющийся «secure_pin», если я обновляю страницу или возвращаюсь к ней и т. Д.

Без изменений, без обновлений, ничего .. Есть идеи? : ‘(

Большое спасибо за вашу помощь !

РЕДАКТИРОВАТЬ 1 Вот функция «шифровать»:

public static function encrypt($passwd)
{
return md5(pSQL(_COOKIE_KEY_.$passwd));
}

РЕДАКТИРОВАТЬ 2 : Вот функция «substr»:

static function substr($str, $start, $length = false, $encoding = 'utf-8')
{
if (is_array($str))
return false;
if (function_exists('mb_substr'))
return mb_substr($str, (int)($start), ($length === false ? self::strlen($str) : (int)($length)), $encoding);
return substr($str, $start, ($length === false ? self::strlen($str) : (int)($length)));
}

1

Решение

Задача ещё не решена.

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

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

По вопросам рекламы [email protected]