由于几天,我的函数生成一个随机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)));
}