您好!欢迎来到大秦朝旭拼单网官方站

大秦朝旭拼单网官方站

热门搜索: 友价    店铺转让    智企    知识产权    新媒   

ecshop中红包编码生成规则分析和改进_拼单网

  • 二开教程
  • 来源:转载
  • 编辑:拼单网
  • 时间:2023-11-22 06:00
  • 阅读:526

我们知道在ecshop后台的促销管理里面,有红包的功能。ecshop红包的功能无非就是可以直接抵消现金的作用,ecshop红包广告买卖有两类型,一种是直接发送到个人帐户上去的。就是存储在ecs_user_bonus表中的,这个一旦发送到客户的帐户上去。那么意味着别人拿到了这个编码,也不能使用这个编码进行抵扣。另外一种ecshop红包就是线下发送的。当你得到这个编码,在红包的有效期内,可以使用该红包。

     我们必须知道,ecshop的红包编码是有问题的。我们看flow.php

     if (((!empty($bonus) && $bonus['user_id'] == $_SESSION['user_id']) || ($bonus['type_money'] > 0 && empty($bonus['user_id']))) && $bonus['order_id'] <= 0)

       这一句表示,就算是该编码没被使用。只要是发到个人帐户去之后。即使你登陆了,也不能通过这个编码来进行使用,所以这就是一大问题。

      其次,我们看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++;

    }

     首先我们看清楚,当你的红包编码达到了几百完以上,就容易产生重复的编码。其次,在录入红包编码的时候,根本没判断是否有重复的红包,这就造成了很大的问题,如果红包编码重复,那将是非常严重的问题

    $db->query("INSERT INTO ".$ecs->table('user_bonus')." (bonus_type_id, bonus_sn) VALUES('$bonus_typeid', '$bonus_sn')");

    为了解决这个问题,首先我们必须保证在录入编码之前,确保该编码没重复,所以必须判断数据库中是否有该编码。那么我们就必须对bonus_sn 来进行扫描判断,那么多数据如何提高扫描速度呢。我们必须在bonus_sn上建立索引。其次,我们可以修改红包编码的规则。既然是十位,我们就可以用我们自己的办法来得到。

    static function GenSecret($len=6, $type=self::CHAR_WORD)

    {

        $secret = '';

        for ($i = 0; $i < $len;  $i++) {

            if ( self::CHAR_NUM==$type ){

    if (0==$i) {

     $secret .= chr(rand(49, 57));

    } else {

     $secret .= chr(rand(48, 57));

    }

            }else if ( self::CHAR_WORD==$type ){

                $secret .= chr(rand(65, 90));

            }else{

                if ( 0==$i ){

                    $secret .= chr(rand(65, 90));

                } else {

                    $secret .= (0==rand(0,1))?chr(rand(65, 90)):chr(rand(48,57));

                }

            }

        }

        return $secret;

    }

   这个方法,要强过ecshop红包默认的编码规则。

全部评论(0)
资讯详情页最新发布上方横幅
推荐阅读
  • 织梦安装教程(视频版)_拼单网
  • 织梦安装教程(视频版)_拼单网
  • 这个视频是专门录制给对于织梦系统还不太熟悉的朋友,直接发布的是的图文版的,这次是视频版也录制的非常详细。拼单网模板网用了视频录制的工具,录制好以后的是.lxe扩展名,传到优酷上发现无法转码。所以大家就下载下来看吧。如果看不清楚,可以下载原视频进行观看,视频下载地址:链接:https://pan.baidu.com/s/1dGoUDup密码:ze9x大家
  • 二开教程
  • 来源:转载
  • 编辑:拼单网
  • 时间:2024-03-13 21:58
  • 阅读:879
  • 织梦网站如何修改中英文模板的当前位置_拼单网
  • 织梦网站如何修改中英文模板的当前位置_拼单网
  • 织梦网站如何修改中英文模板的当前位置中文模版的当前位置:{dede:fieldname=position/}英文模版的当前位置:{dede:fieldname=positionrunphp=yes}&大秦朝旭nbsp;$b=array(”主页”);$c=array(”HOME”);@me=str_replac
  • 二开教程
  • 来源:转载
  • 编辑:拼单网
  • 时间:2024-03-13 21:44
  • 阅读:526
  • 织梦dedecms单独增加手机版搜索功能 不跳转到电脑版_拼单网
  • 织梦dedecms单独增加手机版搜索功能 不跳转到电脑版_拼单网
  • 1、找到plus下面的search.php复制该文件(注意,是复制一份不是修改名字),取名search_m.php打开search_m.php这个文件,找到require_once(DEDEINC.”/arc.searchview.class.php”);大概在13行拼单网%99%E9%95%BFv_j37v.html”>站长培训改成requi
  • 二开教程
  • 来源:转载
  • 编辑:拼单网
  • 时间:2024-03-13 21:40
  • 阅读:719
联系我们
Q Q:1005618718
电话:17792038992
邮箱:1005618718@qq.com
时间:09:00 - 19:00
平台客服