yii2 验证码的使用

@see  http://www.yiiframework.com/doc-2.0/yii-captcha-captcha.html

以下根据 MVC 模型的顺序来添加代码

1. model 层, 或者可以在默认的 LoginForm.php 上修改, 代码如下.

class LoginForm extends Model
{
    // ......表示其他人码.
    ......
    // 添加验证码属性字段
    public $verifyCode;
    ......

    public function rules()
    {
        return [
            ......
            [‘verifyCode‘, ‘captcha‘, ‘captchaAction‘ => ‘/admin/login/captcha‘],
            ......
        ];
    }
}

如果使用默认 SiteController 控制器, 红包部分代码可不用填写, 如果使用其他比如我使用 http://my-domain.net/admin/login 控制器, 那红色部分就得添加了, 不然的话, 会提示

Exception (Invalid Configuration) ‘yii\base\InvalidConfigException‘ with message ‘Invalid CAPTCHA action ID: default/captcha‘in E:\wamp\www\yii-application\vendor\yiisoft\yii2\captcha\CaptchaValidator.php:81

@see http://stackoverflow.com/questions/28497432/yii2-invalid-captcha-action-id-in-module

2. view 层, 属性设置参考  http://www.yiiframework.com/doc-2.0/yii-captcha-captcha.html, 代码如下

        <?= $form
            ->field($model, ‘verifyCode‘)
            ->label(false)
            ->widget(Captcha::className(), [
                ‘template‘ => ‘<div class="row"><div class="col-lg-6">{input}</div><div class="col-lg-3">{image}</div></div>‘,
                ‘captchaAction‘ => ‘login/captcha‘,
                ‘options‘ => [‘placeholder‘ => ‘VerifyCode‘, ‘class‘ => ‘form-control‘],
                ])
        ?>

3. 控制器里添加如下代码,  或者可以直接去默认 SiteController 里复制一份是一样的. 属性设置参考 http://www.yiiframework.com/doc-2.0/yii-captcha-captchaaction.html

    /**
     * actions
     */
    public function actions()
    {
        return [
            ‘captcha‘ => [
                ‘class‘ => ‘yii\captcha\CaptchaAction‘,
                ‘maxLength‘ => 5,
                ‘minLength‘ => 5,
            ],
        ];
    }
时间: 2024-08-24 19:24:39

yii2 验证码的使用的相关文章

yii2验证码的使用

1.控制器中 public function actions() { return [ 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null, ], ]; } 2.模型中 要有一个验证码的字段$verifyCode 3.视图中 use yii\helpers\Html;use yii\widgets\ActiveForm;use

LNMP Yii2 验证码不显示问题最终解决方案

首先,本地使用OK! 然后,新配置的LNMP环境,验证码一直显示不出来,看了Yii2的验证码存在session里,怀疑是session有问题. 在测试其他页面的时候,发现:session_start(): Failed to initialize storage module: files (path: )错误 lnmp的php.ini中这句话默认是注释掉的,所以 : 然后问题就解决了!

Yii2 验证码

没有用默认的layout  验证码点击不会改变 下面是静态页面代码 1 <div class="col-sm-12 login"> 2 <div class="row"> 3 <div class="col-sm-6 col-md-offset-3"> 4 <?php $form = ActiveForm::begin([ 5 'fieldConfig' => [ 6 'template' =>

Yii2验证码使用教程

控制器代码 public function actions() { return [ 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null, 'maxLength' => 4, //最大显示个数 'minLength' => 4,//最少显示个数 'height' => 42,//高度 'width' =>

Yii2在Form中处理短信验证码的Validator,耦合度最低的短信验证码验证方式

短信验证码在目前大多数web应用中都会有,本文介绍一个基于Yii2 Validator方式的验证码验证方式. 在其他文章中看到的方式大多比较难做到一次封装,多次重用. 使用此方式的好处自然不用多说,Validator支持在Model和Form中使用,使用的时候只需要在rules中添加一条验证规则即可. 第一步: 准备数据表,用来存储短信验证码 CREATE TABLE `tbl_sms_log` ( `id` int(11) NOT NULL AUTO_INCREMENT, `to` varch

yii2中添加验证码的实现方法

本文实例讲述了yii2中添加验证码的实现方法.分享给大家供大家参考,具体如下: 首先,在模型中添加验证码字段: ? 1 2 3 public function rules(){ return ['verifyCode', 'captcha'], } 其次,可以在函数attributeLabels中添加前台页面中验证码的字段名称: ? 1 2 3 public function atrributeLabels(){ return ['verifyCode'=>'Verification Code'

yii2.0表单自带验证码

Yii2.0的自带的验证依赖于GD2或者ImageMagick扩展. 使用步骤如下: 第一步,控制器: 在任意controller里面重写方法 代码折叠,点击查看 <?php namespace frontend\controllers; use Yii; use app\models\login; use app\models\search\UserSearch; use yii\web\Controller; use yii\web\NotFoundHttpException; use yi

yii2增加验证码详细步骤

作者:白狼 出处:http://www.manks.top/article/yii2_captcha本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 本来以为yii2框架验证码这块很全面,尝试百度google了一下,大多数教程写的零零散散不全面,想着自己写一份带有完整步骤的验证码教程. 我们假设site/login 表单登录需要增加验证码. 1.siteController控制器的actions方法增加captcha设置 p

Yii2中后台用前台的代码设置验证码显示不出来?

我说的是直接修改advanced模板.细心人会发现模板里在contact里有,登录也想要就仿照contact中的做法.前台好了,后台登录也要验证码,就把前台代码拿过来,可惜前后台的SiteController差别比较大.而且,问题的关键就在于SiteController. 1.新加: