ECSHOP如何增加紅包序列號字元

2022-09-16 20:15:16 字數 1651 閱讀 1749

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]$/;

修改為:

var reg = /^[0-9a-za-z]$/;

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++)

/*增加生成隨機字元加數字的函式:

*/function get_unique_id($length=32, $pool="")

return

$unique_id

;}

4、修改user.php中新增紅包的驗證部分

在檔案的778行 左右:

/*

新增乙個紅包

*/elseif ($action =='act_add_bonus')

else

}將原來的

$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組成,安全性高的同時,也避免了大批量發放導致的序列號重複問題。

Oracle給查詢結果增加序列號

在oracle中,需要加乙個序列號,首先想到是用rownum這個關鍵字,比如sql如下 select rownum,t.from table t以上sql如果不增加排序,這個資料沒有問題,一旦增加排序,序列號就錯亂了 select rownum,t.from table t order by t.s...

WPF下給DataGrid自動增加序列號

c 下使用wpf框架程式設計時,有時需要給datagrid新增序號,實現方式一般兩種,一種方式是通過 loadingrow,自動在列前邊增加一列序號,該列為自動新增,沒有列名字。另一種是自定義一列顯示序號。下邊我們看看具體的實現方式。1 自動增加一列顯示序號 效果如圖 實現方式 給datagrid新...

如何得到硬碟序列號 C

硬碟序列號 serial number 不等於卷標號 volume name 後者雖然很容易得到,但是格式化分割槽後就會重寫,不可靠。遺憾的是很多朋友往往分不清這一點。要得到硬碟的物理序列號,可以通過wmi,也就是win32 physicalmedia.serialnumber。可惜的是window...