如何检查控制器中的CAPTCHA?

sha*_*yan 2 php yii

我需要检查控制器中的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)

Cha*_*ams 6

形成

将captcha小部件添加到表单

<?php $this->widget('CCaptcha'); ?><br>
<?php echo CHtml::textField('captcha'); ?>
Run Code Online (Sandbox Code Playgroud)

CONTROLLER

将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)