php 生成8位数唯一的激活码
2024-09-01 12:09:30
/**
*生成激活码
*/
function showGenerationActivationCode(){
#渠道类型id
$channel_id=$_POST['channel'];
#根据渠道id去查询渠道英文名称
$channelInfo = load_mysql ( "channelInfo" );
$_res=$channelInfo->getInfoById($channel_id);
$en_name=$_res['en_name'];
#活动类型
$type=$_POST['active_type'];
#生成数量
$nub=$_POST['nub'];
#连接redis
$redis=new Redis();
$redis->connect('192.168.1.133',8899);
#授权
$redis->auth("XXXXXX");
#存入数据
for($i=0;$i<$nub;$i++){
#接受生成的激活码
$ActivationCode=$this->showunique_rand(10000000,99999999,1);
#生成code
$code=$this->showAlgorithm_ActivationCode($type,$channel_id,$ActivationCode);
#写入redis
$redis->hmset('hash','code_hash',array('code'=>$code));
}
#写入redis
$redis->hmset('hash', 'channel_hash', array($en_name=> $channel_id ));
$this->PromptMsg = "生成成功!";
$this->UrlJump = "./index.php?module=operation&action=ActivationCode&menuId=168";
$this->promptMsg ();
}
/**
*生成code算法
*type:活动类型[取前三位]
*channel_id:渠道id[取前三位,不足以0填充]
*array_ActivationCode:激活码数组
*code算法格式=活动类型+渠道id+array_ActivationCode;
*return code的数组
*/
function showAlgorithm_ActivationCode($type,$channel_id,$ActivationCode){
#截取活动类型前位字符串
$type=mb_substr($type,0,3,'utf-8');
#渠道id[取前三位,不足左边以0填充]
$channel_id=str_pad($channel_id,3,'0',STR_PAD_LEFT);
#拼接code
$code=$type.''.$channel_id.''.$ActivationCode;
return $code;
}
/**
*生成8位数的激活码算法
*/
function showunique_rand($min, $max, $num=1) {
$count = 0;
$return = array();
while ($count < $num) {
$return[] = mt_rand($min, $max);
$return = array_flip(array_flip($return));
$count = count($return);
}
return $return[0];
}
最新文章
- 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范
- Ubuntu14.04下安装docker
- 如何维护SSH安全
- ★Linux磁盘配额的使用 ★——牛刀小试
- php框架练习
- [BZOJ 3626] [LNOI2014] LCA 【树链剖分 + 离线 + 差分询问】
- 【蓝牙数据采集模块】-02-Sensor Controller 编写CC2650STK外设驱动
- Java课程设计 - 学生基本信息管理
- Java 并发编程实践基础 读书笔记: 第二章 构建线程安全应用程序
- CMDB服务器管理系统【s5day89】:部分数据表结构-资产入库思路
- 模拟Http请求的几种常用方式
- Kubernetes资源管理
- github开源的一些ip解析 ,运营商信息,经纬度 地址 后续开发使用
- python之路---10 *args **kwargs 命名空间 作用域 函数的嵌套
- CentOS 6 安装配置JDK+tomcat环境
- 3. Layout -- 1
- 【WPF】WriteableBitmap和BitmapImage的相互转换
- 在WPF中实现玻璃模糊效果
- jQuery实际案例⑥——图片跟随鼠标、五角星评分案例
- LeetCode题解 #155 Min Stack
热门文章
- redis 安装并且设置开机后台自动启动(转)
- EDM邮件群发十大技巧提升邮件群发效果
- linux tail指令
- Android Facebook分享功能实现
- C#日期格式化,时间
- log4j输出日志到flume
- php不重新编译添加模块
- 飘逸的python - __get__ vs __getattr__ vs __getattribute__以及属性的搜索策略
- HNU11376:Golf Bot
- Linux 常见安全检查方法