protected function checkVerify($code) { // 验证码不区分大小写 $code = strtolower($code); $checkCode = Common::session(self::ROBOT_CHALLENGE_FLAG); // 验证码不存在,直接返回 if (!$checkCode) { $this->error = 'Verify not exists'; return false; } if (substr(hash('sha256', $checkCode . $code), 0, 4) !== '0000') { // 验证失败 $checkTimes = intval(Common::session(self::ROBOT_CHALLENGE_VERIFY_TIMES)); // 验证码超过指定次数后失效 if ($checkTimes > self::ROBOT_CHALLENGE_ERROR_TIMES) { Common::session(self::ROBOT_CHALLENGE_FLAG, null); } else { $checkTimes++; Common::session(self::ROBOT_CHALLENGE_VERIFY_TIMES, $checkTimes); } $this->error = 'Check verify failure'; return false; } else { // 验证成功,重置验证次数统计,删除验证码 Common::session(self::ROBOT_CHALLENGE_VERIFY_TIMES, null); Common::session(self::ROBOT_CHALLENGE_FLAG, null); return true; } }
private function delWhiteFlag() { return Common::session(self::SESSION_WHITE_FLAG, null); }
private function setVerify($code) { // 验证码不区分大小写 $code = strtolower($code); // 重置验证码验证失败次数 Common::session(self::ROBOT_CHALLENGE_VERIFY_TIMES, 0); if (Common::session(self::ROBOT_CHALLENGE_FLAG, $code)) { return true; } else { $this->error = 'Set verify into session failure'; return false; } }