验证码

  • 一、安装验证码
  • 二、模板中使用
  • 三、修改验证码配置
  • 四、自定义验证码
    • 1. 创建
    • 2. 配置
    • 3. 使用
  • 五、验证

TP6 有内置验证码插件,只需简单安装和配置即可使用,而且验证码的验证也非常方便,下面开始表演。

一、安装验证码

composer require topthink/think-captcha

二、模板中使用

将原来静态页面的验证码图片替换为{:captcha_img()},这个会自动生成验证码图片。

<div style="margin-left: 10px;">{:captcha_img()}
</div>

生成的html代码为:

<img src="/captcha.html?0.12285642498823002" alt="captcha" onclick="this.src=&quot;/captcha.html?&quot;+Math.random();">

从生成的代码可以看出,点击图片可以切换图片。生成的图片:

如果图片没有出来,检查下路径是否正确,路由是否正确。浏览器直接访问http://tp6.com/captcha也会显示二维码,如果没有显示就考虑路由的正确性。

三、修改验证码配置

config目录新建captcha.php

<?phpreturn ['length' => 4,'codeSet'   =>  '0123456789','useCurve' => false
];

具体可配置的项:

参数 描述 默认
codeSet 验证码字符集合
expire 验证码过期时间(s) 1800
math 使用算术验证码 false
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

四、自定义验证码

1. 创建

除了使用默认的方式{:captcha_img()},还可以通过think\captcha\facade\Captcha类自行创建验证码。

<?phpnamespace app\admin\controller;
use think\captcha\facade\Captcha;class Verify
{public function index(){return Captcha::create();}
}

通过这个控制器也能正常返回验证码:

2. 配置

自定义验证码也可以配置,可以在config/captcha.php文件里定义一个配置,然后在创建的时候传入配置key即可:
captcha.php:

<?phpreturn ['length' => 4,'codeSet'   =>  '0123456789','useCurve' => false,// 配置名称可以随意取'my_set' => ['length' => 3,'codeSet' => 'abcdefg']
];

修改Verify控制器:

return Captcha::create('my_set');

秀一下:

3. 使用

<img src="{:url('verify/index')}" class="layadmin-user-login-codeimg">

想要点击切换验证码,可以添加个onclick事件,自行仿照原生的做法。

五、验证

框架的内置验证功能:

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

如果没有使用内置验证功能,则可以调研内置的函数手动验证

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

这里需要注意的是TP6默认没有开启Session,需要自行开启,而这里的验证码验证需要使用到session功能,所以修改app目录下的中间件文件middleware.php,将\think\middleware\SessionInit::class的注释放开即可。


⭐️重磅推荐:免费商用电商系统

ThinkPHP6项目基操(12.实战部分 验证码)相关推荐

  1. ThinkPHP6项目基操(15.实战部分 阿里云短信redis)

    阿里云短信redis 一.安装阿里云短信SDK 二.封装到项目lib中 三.radis记录验证码 1. 安装redis服务 2. 可视化redis管理软件 3. PHP安装redis扩展 4. 配置缓 ...

  2. ThinkPHP6项目基操目录

    前言 ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色 ...

  3. ThinkPHP6项目基操(11.实战部分 部署后台静态页面模板及后台登录页面)

    实战部分 部署后台静态页面模板及后台登录页面 前言 一.部署静态资源到项目 1.新建后台静态资源文件夹 二.后台登录页面 1. 目录结构 2. 模板字符串替换配置 前言 网站后台一般是在基础静态页面上 ...

  4. ThinkPHP6项目基操(20.实战部分 数据库操作返回值总结)

    数据库操作返回值总结 0. 前言 1. Db类操作数据库 1.1 新增 1.2 更新 1.3 删除 1.3.1 单条删除 1.3.2 批量删除 1.4 查询 1.4.1 单笔记录 1.4.2 多笔记录 ...

  5. ThinkPHP6项目基操(13.实战部分 项目中的自定义异常处理总结 错误页面API错误)

    项目中的自定义异常处理总结 错误页面&API错误 前言 一.异常分类 1. 控制器找不到 2. 方法找不到 3. 请求资源不存在 4. 系统內部异常.HTTP异常等 二.异常处理 1. 前置处 ...

  6. php登陆项目,ThinkPHP6项目基操(14.实战部分 中间件处理登录流程)

    一.定义中间件 namespace app\middleware; class Check { public function handle($request, \Closure $next) { i ...

  7. ThinkPHP6项目基操(19.实战部分 Mysql模型事务操作)

    模型事务操作 前言 1. Mysql数据库注意 2. thinkPHP模型使用事务 前言 事务操作在复杂的数据库操作的时候尤为重要,特别是在操作多张表的时候,如果某一步骤出错了,就会导致有脏数据,会很 ...

  8. ThinkPHP6项目基操(18.实战部分 表单令牌Token 防CSRF)

    表单令牌Token 0. 前言 1. TP6 令牌token使用 1.1 表单提交 1.2 AJAX提交 2. TP6 令牌token验证 2.1 路由验证 2.2 控制器验证 2.3 验证器验证 0 ...

  9. ThinkPHP6项目基操(17.实战部分 Filesystem文件上传)

    Filesystem文件上传 控制器: <?php namespace app\admin\controller; use app\BaseController; use think\facad ...

最新文章

  1. 随机森林中的Bootstrap抽样是有放回抽样么?Bootstrap抽样过程描述一下
  2. 看看那些在公众号留言中的照片
  3. 网络流之 最短增广路算法模板(SAP)
  4. nfs服务器与客户端配置
  5. VHDL-std_logic_vector转换为integer注意
  6. 民意调查Django实现(一)
  7. 聚合天气--ajax 通过城市名取数据
  8. 利用openmp实现矩阵相乘_MP116:线性代数补习班(4):矩阵的张量积
  9. nginx虚拟主机配置实例
  10. Python 树莓派 引脚
  11. 关于信度分析的多种方法
  12. 人脸服务器如何与门禁系统对接,人脸识别门禁系统功能介绍
  13. html+css精致的登录页面 (含源码的哦)
  14. php面试题和答案整理
  15. python量化策略——大类资产配置模型(最小方差模型)
  16. Sublime Text(轻量级的文本编辑类软件)
  17. 链游公会打金热背后:多由矿工转型 存在多重风险
  18. [计网:原理与实践] 第四章:网络互联(课后习题整理)
  19. 变换矩阵在二维图形中的应用
  20. 小米智能互联电脑版总是弹出_小米智能互联PC版-小米智能互联下载v1.1.0.453-IE浏览器中文网站...

热门文章

  1. DDD~DDD从零起步架构说明
  2. 社会工程学***的八种常用方法
  3. 程序员对学历高吗?毕业是考研还是实习?
  4. 我们再也看不到“Win 10 破解版下载”
  5. 【比较】CWebBrowser2类Navigate方法的一些问题
  6. 程序员谈谈我的职场观(三)
  7. 企业即时通讯一个全新行业的诞生
  8. 我也想对广大程序员说一些话
  9. 剖析VC中的文件操作
  10. 离异美女跟程序员相亲,结果自我介绍完就被秒删:三无送个儿