Redis限制在规定时间范围内登陆错误次数限制
//登录错误次数校验 $key = "login_{$username}"; $res = $this->_redisVerify($key,10,1800);//半小时内密码输入错误10次 if(!$res){ echo "手机号或密码错误次数过多,请稍后再试"; }else{ echo "手机号或密码错误"; }
/** * redis限制 * @param $key : redis key * @param $times : 次数 * @param $time : key有效时间 * @return bool */ private function _redisVerify($key,$times,$time = 86400){ $redis = new Utils_Redis(); $redis->select(11);//选择db 10 $value = (int)$redis->get($key); if($value && $value < $times){//防刷次数 $redis->increment($key);//如果有手机号键名,添加次数 }elseif(!$value){ $redis->set($key,1,$time);//设置TimeOut }elseif($value >= $times){ return false; } return true; }