zoukankan      html  css  js  c++  java
  • thinkPHP5 验证码

    首先使用Composer安装think-captcha扩展包:

    composer require topthink/think-captcha
    

    官方的5.0版本的扩展库版本号都是1.*2.0版本均为ThinkPHP5.1版本专用。

    验证码的简单用法

    扩展包内定义了一些常见用法方便使用,以下示例说明

    注意:需要开启URL路由。

    模版内验证码的显示

    <div>{:captcha_img()}</div>
    

    或者

    <div><img src="{:captcha_src()}" alt="captcha" /></div>
    

    上面两种的最终效果是一样的,根据需要调用即可。

    使用TP5的内置验证功能,添加captcha验证规则即可

    $this->validate($data,[
        'captcha|验证码'=>'require|captcha'
    ]);
    

    或者手动验证

    if(!captcha_check($captcha)){
     //验证失败
    };
    

    验证码的自定义用法

    如果项目未开启路由,或者有实际需求可自行调用Captcha类操作

    验证码的生成:

    $captcha = new Captcha();
    return $captcha->entry();
    

    如果你需要在一个页面中生成多个验证码的话,entry方法需要传入可标识的信息,例如:

    $captcha = new Captcha();
    return $captcha->entry(1);
    

    验证码的验证:
    可以用Captcha类的check方法检测验证码的输入是否正确,例如,下面是封装的一个验证码检测的函数:

    // 检测输入的验证码是否正确,$code为用户输入的验证码字符串,$id多个验证码标识
    function check_verify($code, $id = ''){
        $captcha = new Captcha();
        return $captcha->check($code, $id);
    }
    

    验证码的配置参数

    Captcha类带有默认的配置参数,支持自定义配置。这些参数包括:

    如果使用了扩展内置的方法,务必在应用配置文件中配置,5.0.1及以上支持者在应用配置目录下面extra子目录内配置captcha.php文件

    参数描述默认
    codeSet 验证码字符集合
    expire 验证码过期时间(s) 1800
    useZh 使用中文验证码 false
    zhSet 中文验证码字符串
    useImgBg 使用背景图片 false
    fontSize 验证码字体大小(px) 25
    useCurve 是否画混淆曲线 true
    useNoise 是否添加杂点 true
    imageH 验证码图片高度,设置为0为自动计算 0
    imageW 验证码图片宽度,设置为0为自动计算 0
    length 验证码位数 5
    fontttf 验证码字体,不设置是随机获取
    bg 背景颜色 [243, 251, 254]
    reset 验证成功后是否重置 true

    参数设置使用两种方式。
    实例化传入参数:

    $config =    [
        // 验证码字体大小
        'fontSize'    =>    30,    
        // 验证码位数
        'length'      =>    3,   
        // 关闭验证码杂点
        'useNoise'    =>    false, 
    ];
    $captcha = new Captcha($config);
    return $captcha->entry();
    

    或者采用动态设置的方式,如:

    $captcha = new Captcha();
    $captcha->fontSize = 30;
    $captcha->length   = 3;
    $captcha->useNoise = false;
    return $captcha->entry();
    

    验证码字体

    默认情况下,验证码的字体是随机使用扩展包内 think-captcha/assets/ttfs目录下面的字体文件,我们可以指定验证码的字体,例如:

    $captcha = new Captcha();
    $captcha->fontttf = '5.ttf'; 
    return $captcha->entry();
    

    背景图片

    支持验证码背景图片功能,可以如下设置:

    $captcha = new Captcha();
    // 开启验证码背景图片功能 随机使用扩展包内`think-captcha/assets/bgs`目录下面的图片
    $captcha->useImgBg = true; 
    return $captcha->entry();
    

    中文验证码

    如果要使用中文验证码,可以设置:

    $captcha = new Captcha();
    //中午 验证码字体使用扩展包内`think-captcha/assets/zhttfs`字体文件
    $captcha->useZh = true; 
    return $captcha->entry();
    

    指定验证码字符

    指定验证码的字符,可以设置:

    $captcha = new Captcha();
    // 设置验证码字符为纯数字
    $captcha->codeSet = '0123456789'; 
    return $captcha->entry();
    

    如果是中文验证码,可以使用zhSet参数设置,例如:

    $captcha = new Captcha();
    $captcha->useZh = true;
    // 设置验证码字符
    $captcha->zhSet = '们以我到他会作时要动国产的一是工就年阶义发成部民可出能方进在了不和有大这'; 
    return $captcha->entry();
    

    默认的验证码字符已经剔除了易混淆的1l0o等字符

  • 相关阅读:
    Vue 环境配置
    Vue-think脚手架
    搭建vue环境网站
    数组 还是 字符串
    javascript jquery console调试方法说明
    获取 stoken 或者id MVC写法
    它山之石
    Android学习笔记_44_apk安装、反编译及防治反编译
    (转)超级实用且不花哨的js代码大全
    Android学习笔记_43_网络通信之文件断点上传
  • 原文地址:https://www.cnblogs.com/xu1115/p/11118537.html
Copyright © 2011-2022 走看看