发送验证码思路
验证码,一分钟内不要重复发送。
发送的验证码时效性为5分钟。
将数据存入Redis中。
存两个,一个是时间,一个是验证码。
$sms_code_key = 'women:code:'.$_POST['telphone']; // 5分钟有效
$sms_time_key = 'women:time:'.$_POST['telphone']; // 1分钟之内不可发送
判断redis中是否已经存在时间key,存在则提示请一分钟之后再试。
$time_key_data = $redis->get($sms_time_key);
if ($time_key_data) {
$this->json->setErr(10004, '已发送,请1分钟之后再试');
$this->json->Send();
}
如果没有,则发送验证码,并将code存入redis。
// 发送
vendor('Func.Sms');
$code = $this->code();
$status = Sms::send($code, $_POST['telphone']);
if (!$status) {
$this->json->setErr(10005, '发送验证码失败');
$this->json->Send();
} else {
// 存入redis,时间,code都存
$redis->set($sms_code_key,$code,300); // 5分钟有效
$redis->set($sms_time_key,date('Y-m-d H:i:s'),60); // 1分钟之内不可发送
$this->json->setErr(0, '发送成功');
$this->json->Send();
}
大致就是这样的思路,Redis很好用。