예제 #1
0
 public static function create($phrase = null)
 {
     $builder = new CaptchaBuilder();
     if ($phrase) {
         $builder->setPhrase($phrase);
     }
     $builder->build();
     Session::put(static::$config['session'], Hash::make(Str::lower($builder->getPhrase())));
     return Response::make($builder->get())->header('Content-type', 'image/jpeg');
 }
예제 #2
0
 public function captcha(Model $Model, $check)
 {
     $value = array_values($check);
     $value = $value[0];
     $field = key($check);
     if (CakeSession::check('captcha')) {
         $builder = new CaptchaBuilder();
         $builder->setPhrase(CakeSession::read('captcha'));
         if ($builder->testPhrase($value)) {
             return true;
         }
     }
     return false;
 }
 /**
  * Validate captcha
  *
  * @access protected
  * @param  array   $values           Form values
  * @return boolean
  */
 protected function validateCaptcha(array $values)
 {
     $errors = array();
     if (!isset($this->sessionStorage->captcha)) {
         $result = false;
     } else {
         $builder = new CaptchaBuilder();
         $builder->setPhrase($this->sessionStorage->captcha);
         $result = $builder->testPhrase(isset($values['captcha']) ? $values['captcha'] : '');
         if (!$result) {
             $errors['captcha'] = array(t('Invalid captcha'));
         }
     }
     return array($result, $errors);
 }
예제 #4
0
 /**
  * Sets the phrase to the builder
  */
 public function setPhrase($phrase)
 {
     $this->builder->setPhrase($phrase);
 }
예제 #5
0
 /**
  * Validate captcha
  *
  * @access protected
  * @param  array   $values           Form values
  * @return boolean
  */
 protected function validateCaptcha(array $values)
 {
     $result = true;
     $errors = array();
     if ($this->userLockingModel->hasCaptcha($values['username'])) {
         if (!isset($this->sessionStorage->captcha)) {
             $result = false;
         } else {
             $builder = new CaptchaBuilder();
             $builder->setPhrase($this->sessionStorage->captcha);
             $result = $builder->testPhrase(isset($values['captcha']) ? $values['captcha'] : '');
             if (!$result) {
                 $errors['login'] = t('Invalid captcha');
             }
         }
     }
     return array($result, $errors);
 }
예제 #6
0
 /**
  * Validate captcha
  *
  * @access public
  * @param  array   $values           Form values
  * @return boolean
  */
 public function validateFormCaptcha(array $values)
 {
     if ($this->hasCaptcha($values['username'])) {
         $builder = new CaptchaBuilder();
         $builder->setPhrase($this->session['captcha']);
         return $builder->testPhrase(isset($values['captcha']) ? $values['captcha'] : '');
     }
     return true;
 }
예제 #7
0
 /**
  * 生成登录页面的图形验证码
  *
  * @author young
  * @name 生成登录页面的图形验证码
  * @version 2013.11.07 young
  * @return \Zend\Stdlib\ResponseInterface
  */
 public function captchaAction()
 {
     $builder = new CaptchaBuilder();
     $builder->setBackgroundColor(255, 255, 255);
     $builder->setTextColor(255, 0, 255);
     $builder->setPhrase(rand(100000, 999999));
     $_SESSION['phrase'] = $builder->getPhrase();
     $builder->build(150, 40);
     header('Content-type: image/jpeg');
     $this->response->setContent($builder->output(80));
     return $this->response;
 }