重新编写ecshop红包编号规则

2011-11-26 23:13 来源:www.chinab4c.com 作者:ecshop专家

     重新编写ecshop红包编号规则,这个话题是很早就有朋友让我去研究的一个话题。只所以要重新编写红包规则,理由很简单。ecshop的红包规则是不完善的,也是非常有问题的。ecshop红包规则只支持大概10万左右的编码。如果超过了这个编码数量。那么ecshop红包的编码规则如果你继续生成后台的红包编码。将会在你的ecshop红包的数据库中产生重复的编码。

    首先我们看下ecshop的红包编码有什么缺陷。为什么会产生重复的红包编码。这个问题是值得我们研究的。我们看以下代码。

     $num = $db->getOne("SELECT MAX(bonus_sn) FROM ". $ecs->table('user_bonus'));
     $num = $num ? floor($num / 10000) : 100000;

    for ($i = 0, $j = 0; $i < $bonus_sum; $i++)
    {
        $bonus_sn = ($num + $i) . str_pad(mt_rand(0, 9999), 4, '0', STR_PAD_LEFT);
        $db->query("INSERT INTO ".$ecs->table('user_bonus')." (bonus_type_id, bonus_sn) VALUES('$bonus_typeid', '$bonus_sn')");

        $j++;
    }

    首先我们看下 $num = $num ? floor($num / 10000) : 100000,很简单,当我们看到达到了100000以后,我们可以看到超过了这个数字。那么将会重新循环一次。很显然,ecshop的红包编码很容易就重复。造成ecshop编码重复的概略非常大。当我们要生成大量的ecshop红包的时候。这个红包的编码肯定是不够用的。

    既然你看到ecshop红包编码的规则不好,那么我们就必须重新修改ecshop的红包编码规则,ecshop的红包编码规则只有数字,而且他的编码序号是非常有规律的。可以这么说,所以为了增强ecshop红包编码的复杂的。我们可以引如ecshop的红包编码结合数字和字母,甚至可以是数字和字母的大小写。这样就可以最大限度的确保ecshop的红包编码得到最大的安全。

    首先要实现ecshop红包的编码,我们要做的第一件事情就是修改user_bonus字段中的bonus_sn.然后更新和验证红包的JS。在验证编码的时候,我们也要修改验证flow.php中的valida_bonus_sn;

    这样就可以最大限度的修改ecshop红包编码的规则,从而可以完善ecshop红包编码的重复度。

     来源:http://www.chinab4c.com

香港公司注册咨询来源于上海汽车租赁