验证码类
<?php
class Captcha extends CCaptchaAction
{
public function run()
{
if (isset($_GET[self::REFRESH_GET_VAR])) // AJAX request for regenerating code
{
$code = $this->getVerifyCode(true);
echo CJSON::encode(array(
'hash1' => $this->generateValidationHash($code),
'hash2' => $this->generateValidationHash(strtolower($code)),
// we add a random 'v' parameter so that FireFox can refresh the image
// when src attribute of image tag is changed
'url' => $this->getController()->createUrl($this->getId(), array('v' => uniqid())),
));
} else{
$this->renderImage($this->getVerifyCode(true)); //刷新页面时会调用这个,问题就出现在这,他调用
}
Yii::app()->end();
}
}
controller
public function actions()
{
return array(
// captcha action renders the CAPTCHA image displayed on the contact page
'captcha'=>array(
'class'=>'Captcha',
'maxLength'=>4,
'minLength'=>4,
'width' => 100
),
);
}
html
<?php $this->widget('CCaptcha', array('showRefreshButton' => false, 'clickableImage' => true, 'imageOptions' => array('title' => '点击换图', 'style' => 'cursor:pointer;width: 110px; height: 35px;'))); ?>