Php 如何在控制器中检查验证码?

Php 如何在控制器中检查验证码?,php,yii,Php,Yii,我需要检查控制器中的验证码,以便从会话表中获取验证码会话值。我查看会话表,看到如下内容: Yii.CCaptchaAction.3bbe352e.controllername.captcha|s:7:"xemobin" 这是什么“3bbe352e” 这个值是常数吗 我可以像这样检查控制器中的验证码会话吗 if ($session['Yii.CCaptchaAction.3bbe352e.controllername.captcha']==$_POST['captcha']) 形式 将验证码小

我需要检查控制器中的验证码,以便从会话表中获取验证码会话值。我查看会话表,看到如下内容:

Yii.CCaptchaAction.3bbe352e.controllername.captcha|s:7:"xemobin"
这是什么“3bbe352e”

这个值是常数吗

我可以像这样检查控制器中的验证码会话吗

if ($session['Yii.CCaptchaAction.3bbe352e.controllername.captcha']==$_POST['captcha'])
形式 将验证码小部件添加到表单中

<?php $this->widget('CCaptcha'); ?><br>
<?php echo CHtml::textField('captcha'); ?>
控制器动作 然后在控制器的操作中

$captcha=Yii::app()->getController()->createAction("captcha");
$code = $captcha->verifyCode;
if($code === $_REQUEST['captcha']){...}
下一行外接程序控制器

$model = new LoginForm;
// if a user already tried to login, then set a scenario:
$model->scenario = 'captchaRequired';

花点时间浏览常见问题解答的所有部分。它可能有助于培养您的Stackoverflow体验。表单应该由控制器呈现,控制器操作也应该在同一控制器内。以上
$captcha=Yii::app()->getController()->createAction(“captcha”)可以写成
$this->createAction('captcha')。你在这里救了我的命:)非常感谢!
public function rules()
{
   return array(
      array('verifyCode', 'captcha', 'on'=>'captchaRequired'),
   );
}
$model = new LoginForm;
// if a user already tried to login, then set a scenario:
$model->scenario = 'captchaRequired';