您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程

ecshop增加红包序列号字符的方法

寻春2025-01-20Ecshop商城教程已有人查阅

导读ecshop系统线下发放红包时系统生成的红包序列号是在10000的基础上增加四位随机数字。如果当我们要发放大额度红包的时候,这样的序列号规 则难免给人不安全的感觉,万一有无聊的人

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}$/;
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中添加红包的验证部分
在文件的778行 左右:
/* 添加一个红包 */
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组成,安全性高的同时,也避免了大批量发放导致的序列号重复问题。

本文标签:

很赞哦! ()

相关源码

  • (自适应响应式)html5高档服装定制西服pbootcms模板下载本模板基于PbootCMS内核开发,为服装定制企业和服装品牌量身打造。设计风格时尚现代,充分展现服装行业的审美特质与品牌魅力。采用HTML5响应式技术,确保在各种设备上呈现视觉效果。整站布局注重产品展示与品牌叙事,帮助企业有效展示服装系列与定制服务,提升客户体验。查看源码
  • (自适应)绿色LED灯具照明灯饰灯光灯泡pbootcms网站源码下载本模板基于PbootCMS内核开发,为LED照明、灯具制造及相关光电技术企业量身打造。设计充分考虑了照明行业的展示需求,从产品陈列到技术说明,从光源展示到工程案例,每一个细节都体现出专业照明行业的特点。查看源码
  • (PC+WAP)茶叶茶艺茶道茶文化pbootcms模网站源码下载本模板基于PbootCMS系统开发,为茶叶企业、茶艺培训机构设计,特别适合展示茶产品、茶道文化等内容。采用响应式技术,确保在不同设备上都能呈现优雅的茶文化氛围。查看源码
  • (自适应)蓝色五金制品配件管件pbootcms网站源码下载基于PbootCMS内核开发的五金行业专用模板,采用响应式设计架构,确保产品展示在各类移动设备上的呈现。通过模块化布局与工业风视觉设计,帮助五金企业高效展示产品规格、应用场景及技术支持,建立专业可靠的行业形象。查看源码
  • (PC+WAP)餐饮奶茶美食小吃招商加盟pbootcms模板源码下载为茶饮烘焙、小吃快餐等餐饮品牌打造的招商加盟系统,助力品牌快速拓展市场;双端pc+wap设计呈现加盟政策对比表。支持后台实时更新菜品图片、加盟费用等关键信息。查看源码
  • (自适应)简繁双语响应式服装服饰西装工装校服定制pbootcms模板本模板基于PbootCMS内核开发,为服装服饰行业量身打造,尤其适合西装定制、工装生产、校服订制等服装类企业使用。模板采用响应式布局设计,确保在手机、平板、电脑查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐