我需要检查控制器中的CAPTCHA,所以我应该从会话表中获取CAPTCHA会话值.我检查会话表,我看到这样的事情:
Yii.CCaptchaAction.3bbe352e.controllername.captcha|s:7:"xemobin"
Run Code Online (Sandbox Code Playgroud)
这是什么"3bbe352e"?
这个值是不变的吗?
我能在这样的控制器中检查CAPTCHA会话吗?
if ($session['Yii.CCaptchaAction.3bbe352e.controllername.captcha']==$_POST['captcha'])
Run Code Online (Sandbox Code Playgroud)
将captcha小部件添加到表单
<?php $this->widget('CCaptcha'); ?><br>
<?php echo CHtml::textField('captcha'); ?>
Run Code Online (Sandbox Code Playgroud)
将captcha添加到控制器操作
public function actions() {
return array(
// captcha action renders the CAPTCHA image displayed on the contact page
'captcha'=>array(
'class'=>'CCaptchaAction',
'backColor'=>0xFFFFFF,
));
}
Run Code Online (Sandbox Code Playgroud)
然后在你的控制器动作中
$captcha=Yii::app()->getController()->createAction("captcha");
$code = $captcha->verifyCode;
if($code === $_REQUEST['captcha']){...}
Run Code Online (Sandbox Code Playgroud)