12
2012
10

为ECSHOP系统红包序列号增加字符

ECSHOP系统线下发放红包时系统生成的红包序列号是在10000的基础上增加四位随机数字。如果当我们要发放大额度红包的时候,这样的序列号规则难免给人不安全的感觉,万一真的有哪个无聊的人,用一天时间来蒙几个红包序列号出来,那就亏大了。因为最多只要试10000次就可以了,所以我们需要更改一下系统的红包序列号发放规则,让红包的序列号是由a-z,A-Z,0-9的字符组合而成,下面给出修改方法:

1、修改ecs_user_bonus表中bonus_sn字段的数据类型

ECSHOP 2.7.2中该字段类型为bigint,我们需要修改为varchar。

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中添加红包的验证部分

在文件的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组成,安全性高的同时,也避免了大批量发放导致的序列号重复问题。

« 上一篇 下一篇 »

评论列表:

1.南京验房  2013-08-11 23:07:05 回复该评论
朋友是一生的缘分,在偶然间相逢,在一生中永存。寒冬又到,天气渐凉,气温骤降,唯有祝福如常。愿你保重身体,一生幸福安康。iEca0
2.求学资讯网  2013-08-12 11:17:08 回复该评论
最专业的培训招生门户-"求学资讯网"IZic5
3.绿欣苑加香  2013-08-14 09:09:27 回复该评论
绿欣苑手机加香机 用这机子挺易赚钱的.不妨试试.02061131338 18988992839rYSNx
4.FvG4rr  2013-08-14 10:54:28 回复该评论
嗯,确实挺不错的分享文章ucNWp
5.Fhb2dw  2013-08-14 16:48:10 回复该评论
http://landy102.cn.1688.com/维萱妮时尚精品女装,阿里巴巴杭州向往服饰9.4冬季备货节盛大开幕!4cRNu
6.中瑞风管  2013-08-16 09:59:39 回复该评论
中瑞复合风管~复合风管第一品牌~0571-82925267
7.F64xYg  2013-08-16 12:06:41 回复该评论
伊美人服饰,一件代发,免费代理,提供数据包,不需要压金,不需要预存。网店货源,淘宝货源,女装货源.
8.长沙开锁  2013-08-18 14:58:53 回复该评论
"长沙市金点原子宏发开锁服务部"是经长沙市公安局备案工商局注册的正规开锁、修锁公司,专业急开锁、修锁、换锁芯,本公司技术精通,服务热情、全天24小时专人专车快速上门服务,保证在最短的时间,以最快的速度,快速为您解决难题!欢迎拨打 0731-83588110服务热线lBwkW
9.FLjhoV  2013-08-19 13:34:48 回复该评论
丝泪教育,集成教、自考、网络教育、名校插班生,中外合作办学与一体的综合教育机构,为考生提供一个好的出路。xrBNc
10.FPpdvB  2013-08-21 09:21:12 回复该评论
写的实在是太好了,一定要支持一下。欢迎关注兜兜宝贝精品影院!
11.FqlFQY  2013-08-22 19:51:30 回复该评论
学FLASH、学PS、学AE,学音画,获教育部工程师证书,请加QQ:40600567156kDx
12.福星驾到  2013-08-28 10:12:29 回复该评论
这篇文章不错, 8ss.cc 小妙招、小窍门欢迎看一下我的YV5Y4
13.awc811026  2013-08-29 15:09:38 回复该评论
这篇文章不错,欢迎看一下我的
14.福星来了  2013-08-29 23:44:08 回复该评论
路过看看 学习了,谢谢分享UqJ6i
15.FlctgK  2013-09-02 11:41:42 回复该评论
路过看看 学习了,谢谢分享
16.电信通  2013-09-02 17:41:46 回复该评论
路过看看 学习了,谢谢分享IGnCK
17.FlBJJS  2013-09-08 09:20:44 回复该评论
嗯,确实挺不错的分享文章.XGXbu
18.F1nOGC  2013-09-09 11:54:44 回复该评论
写的实在是太好了,支持一下UOgKA
19.西米手机  2013-09-16 16:33:14 回复该评论
写的实在是太好了,一定要支持一下xzn54
20.访客  2016-03-02 08:54:34 回复该评论
muo.wang是个不错的博客

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。