修改ECSHOP系统红包序列号规律
2016-09-07 22:02 来源:www.chinab4c.com 作者:ecshop专家
ECSHOP系统线下发放红包时系统生成的红包序列号是在10000的基础上增加四位随机数字。如果当我们要发放大额度红包的时候,这样的序列号规则难免给人不安全的感觉,万一真的有哪个无聊的人,用一天时间来蒙几个红包序列号出来,那就亏大了。因为最多只要试10000次就可以了,所以我们需要更改一下系统的红包序列号发放规则,让红包的序列号是由a-z,A-Z,0-9的字符组合而成,下面给出修改方法: 1、修改ecs_user_bonus表中bonus_sn字段的数据类型 ECSHOP 2.7.2中该字段类型为bigint,我们需要修改为varchar。
ALTER TABLE `ecs_user_bonus` CHANGE `bonus_sn` `bonus_sn` VARCHAR( 32 ) NOT NULL DEFAULT ’0′
2、修改js/user.js文件中对红包序列号验证的部分 在文件的672行左右,找到 var reg = /^[0-9]{10}$/; 修改为:
var reg = /^[0-9a-zA-Z]{10,32}$/;
3、修改admin/bonus.php 文件中红包序列号生成规则 在文件的569行左右,注释掉如下两行:
/* 生成红包序列号 */ 修改for循环中序列号的生成规则如下:
for ($i = 0, $j = 0; $i < $bonus_sum; $i++)
$j++; 增加生成随机字符加数字的函数:
function get_unique_id($length=32, $pool=””) 4、修改user.php中添加红包的验证部分 在文件的768行 左右:
/* 添加一个红包 */
//$bouns_sn = isset($_POST['bonus_sn']) ? intval($_POST['bonus_sn']) : ”;
if (add_bonus($user_id, $bouns_sn)) 将原来的 $bouns_sn = isset($_POST['bonus_sn']) ? intval($_POST['bonus_sn']) : ”; 修改为:
$bouns_sn = isset($_POST['bonus_sn']) ? trim($_POST['bonus_sn']) : ”; 5、修改购物流程中结算部分的红包序列号验证 flow.php 文件 1914行 左右,找到 if (is_numeric($bonus_sn)) 更改为 if (is_string($bonus_sn)) 到这里修改就完成了,后台清除下缓存就可以为红包生成字母加数字的序列号了,现在生成的序列号是由a-z、A-Z以及0-9组成,安全性高的同时,也避免了大批量发放导致的序列号重复问题。 问题:实际中,应该在添加红包类型的时候指定生成红包的规则,毕竟每次活动的规则可能不同。 (责任编辑:chinab4c) |
最近更新
常用插件
- ecshop没登陆情况下订单查
ecshop没登陆情况下订单查询插件,主要是针对ecshop在没有登陆的情况下...
- ecshop二次开发商品购买增
图片1香...
- ecshop2.7.2生成虚拟订单2.
以前我们开发过ecshop下的虚拟订单,就是客户在访问的时候,会自动生...
- ecshop2.7.1邮件发送插件
ecshop2.7.1邮件发送插件:该插件主要的开发思想是源于ecshop短信发送系统...
- ecshop最小购买数量控制插
ecshop最小购买数量控制插件,这个插件主要是为我们提供一个十分方便...