为了账号安全,请及时绑定邮箱和手机立即绑定

麻烦帮忙看看,在yii 中的验证码出不来是什么问题!

麻烦帮忙看看,在yii 中的验证码出不来是什么问题!

Yii C
天涯尽头无女友 2021-08-23 18:15:40
控制器public function actions(){return array(// captcha action renders the CAPTCHA image displayed on the contact page'captcha'=>array(//具体的请参考CCaptchaAction属性'class'=>'CCaptchaAction','backColor'=>0xFFFFFF, //背景颜色'minLength'=>4, //最短为4位'maxLength'=>4, //是长为4位'transparent'=>true, //显示为透明,当关闭该选项,才显示背景颜色),);}model里加的public $verifyCode;rules 里加array('verifyCode', 'captcha','allowEmpty'=>!CCaptcha::checkRequirements()),view里<?php echo $form->textField($model,'verifyCode'); ?><?php echo $form->error($model,'verifyCode'); ?><?php $this->widget('CCaptcha'); ?>就是不知道哪里出了问题没有报错,但就是不显示当前状态是请大家帮帮忙,分析一下是什么问题。
查看完整描述

2 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

本文描述yii验证码的实现,仅仅是笔者应用的一个小例子,网上也有,总结一下,希望帮助到有需要的Yii爱好者。1、笔者用的是用户登录,所以在sitecontroller中加以下代码: public function actions()
{
return array(
// captcha action renders the CAPTCHA image displayed on the contact page
‘captcha’=>array(
‘class’=>’CCaptchaAction’,
‘backColor’=>0xFFFFFF, //背景颜色
‘minLength’=>4, //最短为4位
‘maxLength’=>4, //是长为4位
‘transparent’=>true, //显示为透明,当关闭该选项,才显示背景颜色
),
);
}
2、在表单文件中加如下代码(视图文件如login.php): <?php if(CCaptcha::checkRequirements()): ?>
< div>
< ?php echo $form->labelEx($model,’verifyCode’); ?> <br/>
< div>
< ?php $this->widget(‘CCaptcha’); ?>
< ?php echo $form->textField($model,’verifyCode’); ?>
< /div>
< div>输入验证码
<br/></div>
< ?php echo $form->error($model,’verifyCode’); ?>
< /div>
3、在Loginform模型(LoginForm.php)中 加入如下代码,主要是添加属性字段,否则会报错(不存在的属性 ) public $username;
public $password;
public $verifyCode;
public $rememberMe;
private $_identity; 通过上面的操作实际上我们已经可以看到验证码了,但是在操作的时候我们会发现不输入验证码仍然可以,原因在于我们还没有指定验证是必须的,在LoginForm.php中加上array(‘verifyCode’,'required’)来指定必须,这时我们如果遗漏验证码,将会如下图所示:
本文描述yii验证码的实现,仅仅是笔者应用的一个小例子,网上也有,总结一下,希望帮助到有需要的Yii爱好者。1、笔者用的是用户登录,所以在sitecontroller中加以下代码: public function actions()
{
return array(
// captcha action renders the CAPTCHA image displayed on the contact page
‘captcha’=>array(
‘class’=>’CCaptchaAction’,
‘backColor’=>0xFFFFFF, //背景颜色
‘minLength’=>4, //最短为4位
‘maxLength’=>4, //是长为4位
‘transparent’=>true, //显示为透明,当关闭该选项,才显示背景颜色
),
);
}
2、在表单文件中加如下代码(视图文件如login.php): <?php if(CCaptcha::checkRequirements()): ?>
< div>
< ?php echo $form->labelEx($model,’verifyCode’); ?> <br/>
< div>
< ?php $this->widget(‘CCaptcha’); ?>
< ?php echo $form->textField($model,’verifyCode’); ?>
< /div>
< div>输入验证码
<br/></div>
< ?php echo $form->error($model,’verifyCode’); ?>
< /div>
3、在Loginform模型(LoginForm.php)中 加入如下代码,主要是添加属性字段,否则会报错(不存在的属性 ) public $username;
public $password;
public $verifyCode;
public $rememberMe;
private $_identity; 通过上面的操作实际上我们已经可以看到验证码了,但是在操作的时候我们会发现不输入验证码仍然可以,原因在于我们还没有指定验证是必须的,在LoginForm.php中加上array(‘verifyCode’,'required’)来指定必须,这时我们如果遗漏验证码,将会如下图所示:



查看完整回答
反对 回复 2021-08-30
  • 2 回答
  • 0 关注
  • 316 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信