创建一个唯一的随机ID

时间:2017-01-31 20:40:03

标签: php random unique-id

由于几天,我的函数生成一个随机ID的问题。

这是功能:

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));

现在,我的变量&#34; secure_pin&#34;无法改变..我总是拥有相同的ID,并且它不想像以前那样改变..我的随机ID会成为每个请求的相同ID .. Grrrr

这是一个例子:

1 /我继续我的页面,我的变量&#34; secure_pin&#34;是622c7da19ec263b59f452b9fc5。

2 /我刷新我的页面,我的变量&#34; secure_pin&#34;始终是622c7da19ec263b59f452b9fc5

3 /我离开了我的页面,我回到了她,我的变量&#34; secure_pin&#34;始终是622c7da19ec263b59f452b9fc5

4 /如果我清空缓存,我的变量&#34; secure_pin&#34;正在改变!..

=&GT;所以,当很多人来到我的页面时,他们都有相同的&#34; secure_pin&#34; ...: - (

我希望(几天前)为每个来到这个页面的人提供一个secure_pin,一个改变&#34; secure_pin&#34;如果我刷新页面或者如果我回到她身边等等。

没有变化,没有更新,没有......任何想法? :&#39;(

非常感谢你的帮助!

编辑1 :这是&#34;加密&#34;功能:

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

编辑2 :这是&#34; substr&#34;功能:

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)));
}

0 个答案:

没有答案