zoukankan      html  css  js  c++  java
  • Yii框架2.0的 验证码

    最近看了一个Yii的教程视频,是按1.1的版本讲的,我想用Yii2.0的框架也参考他的学习开发下,结果发现好多不一样的,现在就说说验证码的事

    首先加入一个actions 做验证码图片的显示,实际事调用了 CaptchaActive 类

    public function actions() {
            return [
                'captcha' => [
                    'class' => 'yiicaptchaCaptchaAction',
                    'height' => 25,
                    'width' => 80,
                    'minLength' => 4,
                    'maxLength' => 4,
                ],
            ];
        }

    在模板文件里参考下面的使用,具体还是多看看文档

    <?php echo Captcha::widget(['name'=>'captchaimg','captchaAction'=>'login/captcha','options'=>['style'=>'cursor:pointer;','id'=>'captchaimg'],'template'=>'{image}']); ?>

    其中 'captchaAction'=>'login/captcha' 是需要注意的,他默认的是 site/captcha 但是如果在某个模块下做的,它会自动加上模块前缀,比如我的 admin ,刚开始的时候一直不能显示,后来发现是rote的问题,不过不知道在哪里改,看文档看了好久。

    最后是验证,

    这个在model类的 rules方法里,  ['captcha', 'captcha', 'message'=>'验证码错误', 'captchaAction'=>'admin/login/captcha'],

    其中 'captchaAction'=>'admin/login/captcha' 也是需要设置的,默认的是 site/captcha  而且这里要绝对路径的全部,它不会自动加上模块id部分。

    最后就是验证了。

    $model->attributes = $_POST['LoginForm'];
    $model->validate());

    当然还可以获取验证结果的错误信息。

    在模板里加入 

    <?php echo Html::error($model, 'captcha'); ?>

    OK,更细节的东西继续摸索,和1.1版本的不一样的地方挺多的。不过又似曾相识。主要是文档是英文的,稍微造成了点障碍。

  • 相关阅读:
    自适应高度的 文本框
    点击小图片遮罩显示大图片
    C++中的声明与定义
    LeetCode_Bit Manipulation
    “纯”面向对象
    指针和引用
    new和delete用法小结
    C++中的变量属性小结
    C++的一些黑暗料理
    Python中的字典和集合
  • 原文地址:https://www.cnblogs.com/wayne173/p/4451409.html
Copyright © 2011-2022 走看看