//登錄錯誤次數校驗 $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; }
