您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程
ecshop系统红包序列号规律怎么修改
梁尉寒2024-12-22Ecshop商城教程已有人查阅
导读ECSHOP系统线下发放红包时系统生成的红包序列号是在10000的基础上增加四位随机数字。如果当我们要发放大额度红包的时候,这样的序列号规则难免给人不安全的感觉,万一真的有哪个无聊的人
ECSHOP系统线下发放红包时系统生成的红包序列号是在10000的基础上增加四位随机数字。如果当我们要发放大额度红包的时候,这样的序列号规则难免给人不安全的感觉,万一真的有哪个无聊的人,用一天时间来蒙几个红包序列号出来,那就亏大了。因为最多只要试10000次就可以了,所以我们需要更改一下系统的红包序列号发放规则,让红包的序列号是由a-z,A-Z,0-9的字符组合而成,下面给出修改方法:
1、修改ecs_user_bonus表中bonus_sn字段的数据类型
ECSHOP 2.7.2中该字段类型为bigint,我们需要修改为varchar。
在文件的672行左右,找到
在文件的569行左右,注释掉如下两行:
在文件的768行 左右:
flow.php 文件 1914行 左右,找到
问题:实际中,应该在添加红包类型的时候指定生成红包的规则,毕竟每次活动的规则可能不同。
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行左右,注释掉如下两行:
/* 生成红包序列号 */
//$num = $db->getOne(“SELECT MAX(bonus_sn) FROM “. $ecs->table(‘user_bonus’));
//$num = $num ? floor($num / 10000) : 100000;
修改for循环中序列号的生成规则如下:
for ($i = 0, $j = 0; $i < $bonus_sum; $i++)
{
//$bonus_sn = ($num + $i) . str_pad(mt_rand(0, 9999), 4, ’0′, STR_PAD_LEFT);
$bonus_sn = get_unique_id(10);
$db->query(“INSERT INTO “.$ecs->table(‘user_bonus’).” (bonus_type_id, bonus_sn) VALUES(‘$bonus_typeid’, ‘$bonus_sn’)”);
$j++;
}
增加生成随机字符加数字的函数:
function get_unique_id($length=32, $pool=””)
{
if($pool == “”) $pool .= “abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”;
mt_srand ((double) microtime() * 1000000);
$unique_id = “”;
for ($index = 0; $index < $length; $index++) {
$unique_id .= substr($pool, (mt_rand()%(strlen($pool))), 1);
}
return $unique_id;
}
4、修改user.php中添加红包的验证部分在文件的768行 左右:
/* 添加一个红包 */
elseif ($action == ‘act_add_bonus’)
{
include_once(ROOT_PATH . ‘includes/lib_transaction.php’);
//$bouns_sn = isset($_POST['bonus_sn']) ? intval($_POST['bonus_sn']) : ”;
$bouns_sn = isset($_POST['bonus_sn']) ? trim($_POST['bonus_sn']) : ”;
if (add_bonus($user_id, $bouns_sn))
{
show_message($_LANG['add_bonus_sucess'], $_LANG['back_up_page'], ‘user.php?act=bonus’, ‘info’);
}
else
{
$err->show($_LANG['back_up_page'], ‘user.php?act=bonus’);
}
}
将原来的
$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组成,安全性高的同时,也避免了大批量发放导致的序列号重复问题。问题:实际中,应该在添加红包类型的时候指定生成红包的规则,毕竟每次活动的规则可能不同。
本文标签:
很赞哦! ()
上一篇:ecshop红包转赠功能实现方法
图文教程
ecshop首页的精品新品热销里显示商家备注的方法
我想将后台编辑商品时录入的“商家备注”信息显示在ECSHOP商城首页的“精品推荐/新品上市/热卖商品”几个栏目里,请问需要怎么修改呢??
ecshop文章分类页面怎么调用当前文章分类名称
1.打开根目录的article_cat.php的文件,在大概80行左右,找到;3.在模板页面调用文章分类格式:{$cat_name}------(文章分类名)
ecshop增加红包序列号字符的方法
ecshop系统线下发放红包时系统生成的红包序列号是在10000的基础上增加四位随机数字。如果当我们要发放大额度红包的时候,这样的序列号规 则难免给人不安全的感觉,万一有无聊的人
ecshop数据库MYSQL现有数据表增加新的字段
执行查询语句:ALTER TABLE `ec_order_info`ADD COLUMN `trade_no` varchar(100) NOT N
相关源码
-
(自适应)居家生活日用品纸盘纸盒纸杯卫生纸巾生产厂家pbootcms模板为纸品生产企业打造的现代化展示平台,自动适应各种设备屏幕,确保浏览体验一致,完善的SEO功能,提升网站曝光度,基于PbootCMS构建,源码开放可定制。查看源码 -
(PC+WAP)高端餐饮美食小吃加盟网站模板下载pbootcms本模板基于PbootCMS内核开发,为餐饮美食品牌加盟、小吃连锁企业量身打造。通过精致的美食视觉呈现与加盟业务流程展示,帮助餐饮企业建立专业线上门户,实现品牌形象与加盟业务的双重展示。查看源码 -
(PC+WAP)企业管理工程造价资产评估财务审计带留言网站模板本模板基于PbootCMS内核开发,为工程造价咨询、财务审计类企业量身打造,同时支持多行业快速适配。采用PC+WAP双端同步设计,数据实时互通,助您高效展示企业形象与服务能力。查看源码 -
(pc+wap)pbootcms网站模板蓝色小程序网站开发公司基于PbootCMS内核开发的营销型门户模板,为小程序开发公司、电商软件企业打造。采用HTML5自适应架构,实现PC与手机端数据实时同步展示查看源码 -
(自适应)蓄电池能源智能数码科技产品pbootcms模板源码下载本款基于PbootCMS开发的网站模板为蓄电池及能源科技企业设计,特别适合锂电池、储能系统、新能源电池等产品的展示与推广。查看源码 -
(自适应响应式)陶瓷研磨盘抛光机械设备pbootcms网站模板本模板基于PbootCMS系统开发,为研磨抛光设备制造企业设计,特别适合陶瓷研磨盘、抛光设备等表面处理设备展示。采用响应式布局技术,确保各类设备的参数和工艺在不同终端上都能清晰呈现。查看源码
| 分享笔记 (共有 篇笔记) |
本栏推荐
相关标签
大家喜欢
- ecshop出现Warning: chmod() has been disabled for security reasons in解决方法
- ecshop商品页面增加上一个商品下一个商品商品名称
- ecshop出现XMlHttpRequest status:[500] Unknow status 这个错误
- ipad等智能机访问ecshop网站不跳转wap的修复方法
- ecshop地区列表添加设置使用说明
- ecshop首页怎么添加商品分类下的品牌
- ecshop标签整理
- ecshop首页怎么获取某个商品分类下的商品品牌列表
- ecshop首页生成纯静态页的实现方法
- ecshop漏洞search.php SQL Injection Vul
