/**
*生成激活码
*/
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];
}

最新文章

  1. 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范
  2. Ubuntu14.04下安装docker
  3. 如何维护SSH安全
  4. ★Linux磁盘配额的使用 ★——牛刀小试
  5. php框架练习
  6. [BZOJ 3626] [LNOI2014] LCA 【树链剖分 + 离线 + 差分询问】
  7. 【蓝牙数据采集模块】-02-Sensor Controller 编写CC2650STK外设驱动
  8. Java课程设计 - 学生基本信息管理
  9. Java 并发编程实践基础 读书笔记: 第二章 构建线程安全应用程序
  10. CMDB服务器管理系统【s5day89】:部分数据表结构-资产入库思路
  11. 模拟Http请求的几种常用方式
  12. Kubernetes资源管理
  13. github开源的一些ip解析 ,运营商信息,经纬度 地址 后续开发使用
  14. python之路---10 *args **kwargs 命名空间 作用域 函数的嵌套
  15. CentOS 6 安装配置JDK+tomcat环境
  16. 3. Layout -- 1
  17. 【WPF】WriteableBitmap和BitmapImage的相互转换
  18. 在WPF中实现玻璃模糊效果
  19. jQuery实际案例⑥——图片跟随鼠标、五角星评分案例
  20. LeetCode题解 #155 Min Stack

热门文章

  1. redis 安装并且设置开机后台自动启动(转)
  2. EDM邮件群发十大技巧提升邮件群发效果
  3. linux tail指令
  4. Android Facebook分享功能实现
  5. C#日期格式化,时间
  6. log4j输出日志到flume
  7. php不重新编译添加模块
  8. 飘逸的python - __get__ vs __getattr__ vs __getattribute__以及属性的搜索策略
  9. HNU11376:Golf Bot
  10. Linux 常见安全检查方法