zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    sencha touch 扩展篇之将sencha touch打包成安装程序(上)- 使用sencha cmd打包安装程序
    sencha touch 扩展篇之使用sass自定义主题样式 (下)通过css修改官方组件样式以及自定义图标
    一个不错的android组件的网站
    sencha touch 扩展篇之使用sass自定义主题样式 (上)使用官方的api修改主题样式
    sencha touch 入门系列 (九) sencha touch 布局layout
    面试题总结
    国外接活网站Elance, Freelancer和ScriptLance的介绍和对比
    sencha touch 入门系列 扩展篇之sencha touch 项目打包压缩
    Android Design Support Library——Navigation View
    设计模式——命令模式
  • 原文地址:https://www.cnblogs.com/ypeih/p/15475337.html
Copyright © 2011-2022 走看看