资讯专栏INFORMATION COLUMN

Yii2验证码使用,不改源码实现验证码刷新

yy13818512006 / 697人阅读

摘要:说明框架的官方文档对于验证码的使用涉及的篇幅很少,然而验证码在开发中其实使用得非常多,以下是通过查阅资料,摸索出的方案解决了验证码不能刷新的问题使用步骤定义验证码和一样,验证码需定义在方法中通常为了方便,可以直接将它定义在中,如果想定义在控

说明

Yii2框架的官方文档对于验证码的使用涉及的篇幅很少,然而验证码在开发中其实使用得非常多,以下是通过查阅资料,摸索出的方案

解决了验证码不能刷新的问题

使用步骤 1. 定义验证码action

和error一样,验证码需定义在actions方法中

通常为了方便,可以直接将它定义在SiteController中,如果想定义在控制器也可以,只是调用时一定要指明是哪个控制中

以SiteController为例

 [
                "class" => "yiicaptchaCaptchaAction",
                "fixedVerifyCode" => YII_ENV_TEST ? "testme" : null,
                "backColor"=>0x000000,//背景颜色
                "maxLength" => 5, //最大显示个数
                "minLength" => 4,//最少显示个数
                "padding" => 3,//间距
                "height"=>34,//高度
                "width" => 90,  //宽度
                "foreColor"=>0xffffff,     //字体颜色
                "offset"=>4        //设置字符偏移量 有效果
            ],
            "error" => [
                "class" => "yiiwebErrorAction",
            ]
        ];
    }
}
2. 视图中输出验证码图片

注意事项请查看代码中的html注释部分


"captcha-img","captchaAction"=>"site/captcha","imageOptions"=>["id"=>"captcha-img", "title"=>"换一个", "style"=>"cursor:pointer;"],"template"=>"{image}"]);?>
登录
3. 解决验证码不刷新问题

这里使用js解决该问题,通常验证码都要求点击刷新,刷新页面时也刷新,然而Yii2验证码,如果用js控制,更新验证码地址其实不会起作用,但是我们还是可以按以下方式来弥补

$(function () {
    //解决验证码不刷新的问题
    changeVerifyCode();
    $("#captcha-img").click(function () {
        changeVerifyCode();
    });
});
//更改或者重新加载验证码
function changeVerifyCode() {
//项目URL
    var adminUrl = $("#admin-url").val();
    $.ajax({
    //使用ajax请求site/captcha方法,加上refresh参数,接口返回json数据
        url: adminUrl+"index.php/site/captcha?refresh",
        dataType: "json",
        cache: false,
        success: function (data) {
        //将验证码图片中的图片地址更换
            $("#captcha-img").attr("src", data["url"]);
        }
    });
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25749.html

相关文章

  • Yii2 验证手机号、邮箱唯一性

    摘要:好比注册功能模块,手机号邮箱注册这些,肯定是要验证其的唯一性的,重复了登录就会混乱。需求分析使用框架自带的在不刷新页面的情况下验证手机号邮箱唯一性。相关资料表单验证问题注册时验证手机号唯一 序言 验证唯一性很重要,说不上用得很普及,但是也必须要有。好比注册功能模块,手机号、邮箱注册这些,肯定是要验证其的唯一性的,重复了登录就会混乱。那么如何使用Yii2自带的targetClass验证唯...

    spacewander 评论0 收藏0
  • Yii2 验证手机号、邮箱唯一性

    摘要:好比注册功能模块,手机号邮箱注册这些,肯定是要验证其的唯一性的,重复了登录就会混乱。需求分析使用框架自带的在不刷新页面的情况下验证手机号邮箱唯一性。相关资料表单验证问题注册时验证手机号唯一 序言 验证唯一性很重要,说不上用得很普及,但是也必须要有。好比注册功能模块,手机号、邮箱注册这些,肯定是要验证其的唯一性的,重复了登录就会混乱。那么如何使用Yii2自带的targetClass验证唯...

    FuisonDesign 评论0 收藏0
  • Yii2验证使用教程

    摘要:控制器代码最大显示个数最少显示个数高度宽度设置字符偏移量有效果模型代码在方法中添加如下一行注意这个属性指向我们上面在控制中定义的这个。 控制器代码 public function actions() { return [ captcha => [ class => yiicaptchaCaptchaActi...

    sixleaves 评论0 收藏0
  • yii2的加密解密那些事儿

    摘要:我们做程序的时候,加密解密是绕不开的话题,使用开发应用的时候,都内置了哪些有关加密解密安全方便的支持那本文将为你揭晓。函数声明为存在着第三个参数,比如我们可以传递会员的等,这样此信息将和一起作为加密解密的钥匙。 我们做程序的时候,加密解密是绕不开的话题,使用yii2开发应用的时候,都内置了哪些有关加密解密(安全)方便的支持那?本文将为你揭晓。 相关环境 操作系统及IDE macOS ...

    dendoink 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<