tp5生成6位不重复验证码

Posted shark1100913

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tp5生成6位不重复验证码相关的知识,希望对你有一定的参考价值。

/**
     * 获取激活码
     */
    public function getnum()
    {
        $num = microtime(true);
        for ($i = $num; $i < ($num + 10); $i++) {
//            dump(substr(md5($i), 0, 6));exit;
            Db::name("fangchan_jihuoma")->insert([
                ‘num‘ => substr(md5($i), 0, 6),
                ‘status‘ => ‘‘,
                ‘created_time‘ => time(),
                ‘info_time‘ => $i
            ]);
        }
        $sql = "select count(*) as sum,num from osc_fangchan_jihuoma group by num HAVING sum>1";//查询重复的验证码数量和重复的验证码
        $data = Db::query($sql);
        if(!empty($data)) {
            foreach($data as $k=> $v) {
                for($j=0;$j<$v[‘sum‘];$j++){
                    Db::name("fangchan_jihuoma")->where(‘num‘,1)->delete();删除重复的验证码
                }
            }
        }
        $this->success(‘激活码已生成!‘);
    }
CREATE TABLE `osc_fangchan_jihuoma` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 自增长id,
  `num` varchar(8) NOT NULL COMMENT 激活码,
  `uid` int(10) unsigned zerofill DEFAULT NULL COMMENT member表id,
  `status` tinyint(1) unsigned zerofill NOT NULL DEFAULT 0 COMMENT 是否核销 0:未核销,1:已核销,
  `created_time` int(11) NOT NULL DEFAULT 0 COMMENT 激活码创建时间,
  `info_time` int(11) NOT NULL DEFAULT 0 COMMENT 标记用时间,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=134 DEFAULT CHARSET=utf8mb4;

 

以上是关于tp5生成6位不重复验证码的主要内容,如果未能解决你的问题,请参考以下文章

java随机生成6位不重复的字符串

java随机生成6位不重复的字符串

java随机生成6位不重复的字符串

用Python或者Java如何生成多位数字不重复的数

tp5用缓存存储手机短信验证码 ,同时实现了避免60秒内重复发送以及验证功能

TP5 使用验证码功能