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';