ThinkPHP6项目基操(12.实战部分 验证码)
验证码
- 一、安装验证码
- 二、模板中使用
- 三、修改验证码配置
- 四、自定义验证码
- 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="/captcha.html?"+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.实战部分 验证码)相关推荐
- ThinkPHP6项目基操(15.实战部分 阿里云短信redis)
阿里云短信redis 一.安装阿里云短信SDK 二.封装到项目lib中 三.radis记录验证码 1. 安装redis服务 2. 可视化redis管理软件 3. PHP安装redis扩展 4. 配置缓 ...
- ThinkPHP6项目基操目录
前言 ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色 ...
- ThinkPHP6项目基操(11.实战部分 部署后台静态页面模板及后台登录页面)
实战部分 部署后台静态页面模板及后台登录页面 前言 一.部署静态资源到项目 1.新建后台静态资源文件夹 二.后台登录页面 1. 目录结构 2. 模板字符串替换配置 前言 网站后台一般是在基础静态页面上 ...
- 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 多笔记录 ...
- ThinkPHP6项目基操(13.实战部分 项目中的自定义异常处理总结 错误页面API错误)
项目中的自定义异常处理总结 错误页面&API错误 前言 一.异常分类 1. 控制器找不到 2. 方法找不到 3. 请求资源不存在 4. 系统內部异常.HTTP异常等 二.异常处理 1. 前置处 ...
- php登陆项目,ThinkPHP6项目基操(14.实战部分 中间件处理登录流程)
一.定义中间件 namespace app\middleware; class Check { public function handle($request, \Closure $next) { i ...
- ThinkPHP6项目基操(19.实战部分 Mysql模型事务操作)
模型事务操作 前言 1. Mysql数据库注意 2. thinkPHP模型使用事务 前言 事务操作在复杂的数据库操作的时候尤为重要,特别是在操作多张表的时候,如果某一步骤出错了,就会导致有脏数据,会很 ...
- ThinkPHP6项目基操(18.实战部分 表单令牌Token 防CSRF)
表单令牌Token 0. 前言 1. TP6 令牌token使用 1.1 表单提交 1.2 AJAX提交 2. TP6 令牌token验证 2.1 路由验证 2.2 控制器验证 2.3 验证器验证 0 ...
- ThinkPHP6项目基操(17.实战部分 Filesystem文件上传)
Filesystem文件上传 控制器: <?php namespace app\admin\controller; use app\BaseController; use think\facad ...
最新文章
- 随机森林中的Bootstrap抽样是有放回抽样么?Bootstrap抽样过程描述一下
- 看看那些在公众号留言中的照片
- 网络流之 最短增广路算法模板(SAP)
- nfs服务器与客户端配置
- VHDL-std_logic_vector转换为integer注意
- 民意调查Django实现(一)
- 聚合天气--ajax 通过城市名取数据
- 利用openmp实现矩阵相乘_MP116:线性代数补习班(4):矩阵的张量积
- nginx虚拟主机配置实例
- Python 树莓派 引脚
- 关于信度分析的多种方法
- 人脸服务器如何与门禁系统对接,人脸识别门禁系统功能介绍
- html+css精致的登录页面 (含源码的哦)
- php面试题和答案整理
- python量化策略——大类资产配置模型(最小方差模型)
- Sublime Text(轻量级的文本编辑类软件)
- 链游公会打金热背后:多由矿工转型 存在多重风险
- [计网:原理与实践] 第四章:网络互联(课后习题整理)
- 变换矩阵在二维图形中的应用
- 小米智能互联电脑版总是弹出_小米智能互联PC版-小米智能互联下载v1.1.0.453-IE浏览器中文网站...