首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TP5 验证码功能实现

TP5 验证码功能实现

作者头像
泥豆芽儿 MT
发布于 2018-09-11 03:19:36
发布于 2018-09-11 03:19:36
2.8K00
代码可运行
举报
运行总次数:0
代码可运行

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1333696

背景

ThinkPHP5.0 已经很久了,最近有所接触,下面介绍一下常用的第三方验证码功能的使用。

功能开发

1).引入第三方扩展包

进行 TP5 的开发,Composer 的使用会成为重要技能

以windows为例子,输入命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
composer require topthink/think-captcha

完成上述操作,会在以下目录中出现 captcha 的扩展包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
..\vendor\topthink\think-captcha

2).前端设置

在前端页面需要显示验证码的位置,补充 {:captcha_img()} 即可,个人代码举例如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<p class="pass-form-item">
        <label class="pass-label">验证码</label>
        <input type="text" name="verifyCode" class="pass-text-input " placeholder="请输入验证码">
      <div>{:captcha_img()}</div>
      </p>

3). captcha 扩展包代码优化

如果按照上述操作,显示的验证码图片并不能点击刷新,可自己根据需求进行刷新功能设计;或者,建议进行下面的代码优化:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function captcha_img($id = "")
{
    $js_src = "this.src='".captcha_src()."'";
    return '<img src="' . captcha_src($id) . '" alt="点击更新验证码"
     onclick="'.$js_src.'" />';
    //return '![](' . captcha_src($id) . ')';
}
  • 打开 ..\vendor\topthink\think-captcha\src\helper.php 文件,替换上面的 captcha_img() 方法代码.
  • 此时的验证码图片即可实时刷新.

4). 后台代码验证

根据前端请求而来的 verifyCode 数据,调用 helper.php 中的captcha_check() 方法,进行验证。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 if(request()->isPost()){
            $data = input('post.');
            if(!captcha_check($data['verifyCode'])) {
                // 校验失败
                $this->error('验证码不正确');
            }
}

提示

  • 建议阅读 ..\vendor\topthink\think-captcha\src\helper.php 文件,及 Captcha.php ,可以进行样式的自定义.
  • 如果前端 {:captcha_img()}有传值 id,那么后台 captcha_check() 验证也需要相应的 id 参数区分。
  • 验证结果,普遍使用 ajax 请求,以满足用户顺畅的体验.
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年08月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
tp6框架验证码-----captcha
在使用tp6自带的验证码遇到的坑,也去网上找了资料但是还是没能解决,自己通过另一种方式实现的,接下来就来讲一下不能显示captcha的方法
以星河为聘礼
2021/09/07
1.8K0
tp6框架验证码-----captcha
TP6.0 验证码 topthink/think-captcha
topthink/think-captcha 是 ThinkPHP 官方团队开发的适用于 TP 各版本的验证码扩展包
很酷的站长
2022/12/31
1.2K0
TP6.0 验证码 topthink/think-captcha
thinkphp5.1版本-验证码生成和校验
thinkphp5.1版本开始将验证码归类为扩展库,而不是3.2版本的杂项,如下图。同时也不在项目安装中提供验证码扩展类,需要在使用时通过composer方式进行安装。下面说一下安装方式。
申霖
2019/12/27
1.2K0
thinkphp5.1版本-验证码生成和校验
tp6自定义验证码(大解析)
第一步:安装tp6验证码插件 切记,切记,在你的项目的根目录下安装哦, 举个例子:比如phpstudy。那就是在
贵哥的编程之路
2022/05/28
5220
tp6自定义验证码(大解析)
Thinkphp6学习(2)验证码的实现与检验
在app目录下有一个文件middleware.php,把“\think\middleware\SessionInit::class”的注释去掉就行了
哆哆Excel
2022/10/25
1.8K0
Thinkphp6学习(2)验证码的实现与检验
TP6实现登录后台管理(一)
5.验证码写了个通用验证码,但是我们还是要去调用tp自带验证码判断,安装验证码命令
以星河为聘礼
2021/09/20
1.3K0
TP6实现登录后台管理(一)
springboot整合kaptcha验证码前言:开发工具及技术:正式开始:总结:
前言: 关于kaptcha简介以及spring整合kaptcha,我在另一篇文章中已详细讲解,请参考:spring整合kaptcha验证码。 本文将介绍springboot整合kaptcha的两种方式。 开发工具及技术: 1、idea 2017 2、springboot 2.0.2 3、kaptcha 正式开始: 方式一:通过kaptcha.xml配置 1、用idea新建一个spring Initializr 2、添加kaptcha的依赖: <!-- kaptcha验证码 --> <d
贪挽懒月
2018/05/18
1.6K0
简单数字图片验证码的生成及识别
网站上的验证码的作用是保护网站安全,一般网站都要通过验证码来防止机器大规模注册,机器暴力破解数据密码等危害。
字节脉搏实验室
2020/03/19
2.4K0
简单数字图片验证码的生成及识别
Laravel验证码
验证码 是防止恶意破解密码、刷票、论坛灌水、刷页的手段。验证码有 多种类型。 本项目中我们将使用图片验证码,其原理是让用户输入一个扭曲变形的图片上所显示的文字或数字,扭曲变形是为了避免被光学字符识别软件(OCR)自动辨识。由于计算机无法识别验证码的图片,所以回答出问题的用户就可以被认为是人类。
申霖
2020/11/23
1.8K0
Kaptcha验证码SSM实现
只要更改以上五项就能实现,其中新建CodeUtil静态类和HttpServletRequestUtil工具类
全栈程序员站长
2022/09/10
6280
Kaptcha验证码SSM实现
ThinkPhp5开发实战2:后台管理登录设计
本文主讲:ThinkPhp5开发实战系列续集:设计登录界面,完成登录操作 对于没有配置开发环境或者TP5框架的同学,请参考文章 [第一章 ThinkPhp5开发实战1:搭建环境配置TP5框架(持续更新收藏关注)]
德宏大魔王
2023/08/08
6010
ThinkPhp5开发实战2:后台管理登录设计
TP6.0 框架的下载,优秀扩展包推荐
本文记录一下,方便以后复制粘贴。也许此时你会想,我怎么会这么懒,嗯,没错,就是这么懒
很酷的站长
2022/12/28
7150
TP6.0 框架的下载,优秀扩展包推荐
登录验证码demo-java
在一些类似于管理系统的项目中,我们在登录时经常会用到图片验证码。这里把我自己写的一个小系统(后台是java语言)的验证码部分摘出来。 总体思路是后端有一个生成验证码图片的接口,把验证码图片写入浏览器,前端页面在img标签里的src属性里填写后端生成验证码图片的接口地址即可。 1、java部分-CaptchaController.java 我这里是把后端生成的验证码生成图片返回给浏览器时,同时存入到了数据库中,前端登录时,后端根据前端输入的验证码和数据库中的验证码作对比,来判断是否可以登录。 package
用户1174387
2018/01/17
3.4K0
登录验证码demo-java
一文搞懂Go整合captcha实现验证码功能
最近在使用Go语言搞一个用户登录&注册的功能,说到登录&注册相关,我们油然会产生一种增加验证码的想法,因此着手实现,后来在GitHub上找到了这个名叫captcha的插件,于是就利用文档进行了初步的学习,并融入到自己的项目中,整个过程下来感觉这个插件的设计非常巧妙,所以就想写一篇文章分享一下,通过本篇文章,你会学到:
闫同学
2024/02/07
7620
相关推荐
tp6框架验证码-----captcha
更多 >
LV.0
这个人很懒,什么都没有留下~
作者相关精选
交个朋友
加入[架构及运维] 腾讯云技术交流站
云架构设计 云运维最佳实践
加入前端工作实战群
前端工程化实践 组件库开发经验分享
加入架构与运维趋势交流群
技术趋势前瞻 架构演进方向
换一批
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档