• TP6验证码的多种使用方式


     
    本篇内容会全方面通过实例的方式讲一下TP6里面验证码的各种使用方法
     

    一、安装验证码扩展包

    composer require topthink/think-captcha

    二、开启Session

    找到app/middleware.php 文件,找到下面一行,并取消前面的注释
    \think\middleware\SessionInit::class

    三、因为要用到模板,需要安装下模板扩展

    composer require topthink/think-view

    四、TP6内置验证码生成以及验证

    html代码:

    <h3>内置验证码生成以及验证:</h3>
    <div>{:captcha_img()}</div>
    
    <form action="/index.php/test_session/verify01" method="post">
      <p>请输入验证码: <input type="text" name="yzm" /> </p>
      <p><input type="submit" value="提交"></p>
    </form>
    html效果:

    控制器代码:
     1 /**
     2      * TP6内置验证码生成以及验证
     3      */
     4     public function show01()
     5     {
     6         return view("test/show01");
     7     }
     8     /**
     9      * TP6内置验证码生成以及验证
    10      */
    11     public function verify01()
    12     {
    13         $data = request()->param();
    14 
    15         if (empty($data['yzm'])) 
    16         {
    17             return json(array('status'=>'FAIL','msg'=>'请输入验证码!'));
    18         }
    19         //调用内置的函数手动验证
    20         if(!captcha_check($data['yzm'])){
    21             return json(array('status'=>'FAIL','msg'=>'验证失败!'));
    22         }else{
    23             return json(array('status'=>'FAIL','msg'=>'验证成功!'));
    24         }
    25     }

    五、自定义验证码 生成以及验证

    HTML代码:
    <h3>自定义验证码生成以及验证:</h3>
    <div><img src="/index.php/test_session/createYzm"  onclick="this.src='/index.php/test_session/createYzm?r='+Math.random()"></div>
    
    <form action="/index.php/test_session/verify02" method="post">
      <p>请输入验证码: <input type="text" name="yzm" /> </p>
      <p><input type="submit" value="提交"></p>
    </form>
    控制器代码:
    控制器文件顶部引入 Captcha 类
    use think\captcha\facade\Captcha;

     1 /**
     2      * 创建验证码
     3      */
     4     public function createYzm()
     5     {
     6          return Captcha::create();
     7     }
     8     /**
     9      * 自定义验证码 生成以及验证 模板
    10      */
    11     public function show02()
    12     {
    13         return view("test/show02");
    14     }
    15 
    16     /**
    17      * 自定义验证码 生成以及验证
    18      */
    19     public function verify02()
    20     {
    21         $data = request()->param();
    22 
    23         if (empty($data['yzm'])) 
    24         {
    25             return json(array('status'=>'FAIL','msg'=>'请输入验证码!'));
    26         }
    27         //调用内置的函数手动验证
    28         if(!captcha_check($data['yzm'])){
    29             return json(array('status'=>'FAIL','msg'=>'验证失败!'));
    30         }else{
    31             return json(array('status'=>'FAIL','msg'=>'验证成功!'));
    32         }
    33     }

    对比说明:

    使用自定义的更加灵活一些,可以搭配各种样式,
    使用内置的是方便一点点。
    我是推荐使用自定义的验证码,这样代码的来龙去脉比较清晰,有问题也方便排错。

    六、验证码常用的配置

    配置文件:config/captcha.php
    常用到的配置有以下几个:

     1 //验证码位数
     2 'length'   => 5,
     3 // 验证码字符集合
     4 'codeSet'  => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',
     5 // 是否使用混淆曲线
     6 'useCurve' => true,
     7 //是否添加杂点
     8 'useNoise' => true,
     9 //背景颜色
    10 'bg'       => [243, 251, 254],
    注意:
    验证码的高度 和宽度不要修改,设置为0即可,不然设置的小了,会出现验证码显示不全的问题。
    如果需要调整大小,通过页面的css样式进行调整验证码的 width 和 height 属性
     

    七、生成多个不同配置的验证码

    设置配置文件config/captcha.php:

    生成不同配置的验证码
     1 /**
     2      * 创建新验证码
     3      */
     4     public function createNewYzm()
     5     {
     6         //生成 verify配置的验证码
     7          return Captcha::create('verify');
     8         //生成 my_verify的验证码
     9         // return Captcha::create('my_verify');
    10     }
    注意:
    生成不同配置的验证码多个,最终验证只有最新的生成的验证码是有效的。
    并不是生成多种不同配置的验证码,就有多重验证方式。

     

    但行好事,莫问前程!

    本文来自博客园,作者:yangphp,转载请注明原文链接:https://www.cnblogs.com/ypeih/p/15475337.html

  • 相关阅读:
    基于php缓存的详解
    Nginx 的 Location 配置指令块
    Nginx负载均衡与反向代理的配置实例
    Linux下mysql定时备份及恢复
    KVO的底层实现
    小谈KVC中KeyPath的集合运算符
    iOS开发中常用的单例
    内存中的5大区域
    需要记住的几个ASCII码
    结构体-内存对齐
  • 原文地址:https://www.cnblogs.com/ypeih/p/15475337.html
Copyright © 2020-2023  润新知