TP5 验证码功能实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/details/77367280

背景

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

功能开发

1).引入第三方扩展包

进行 TP5 的开发,Composer 的使用会成为重要技能 以windows为例子,输入命令:

composer require topthink/think-captcha

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

..\vendor\topthink\think-captcha

2).前端设置

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

<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 扩展包代码优化

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

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() 方法,进行验证。

 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 请求,以满足用户顺畅的体验.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程微刊

如何在小程序里面放入企业官网注意:

20320
来自专栏玄魂工作室

实战-Fluxion与wifi热点伪造、钓鱼、中间人攻击、wifi破解

Fluxion是一个无线破解工具,这款软件可以帮你挤掉WiFi主人的网络让你自己登陆进去,而且WiFi主人怎么挤也挤不过你。这个工具有点像是Lin...

81260
来自专栏CSDN技术头条

Apache NiFi 1.0.0测试版:邮件路由应用新型ListenSMTP

本文为用户使用Apache NiFi最新版本来监听SMTP邮件,并以编程方式做出反应以及捕捉数据提供了指导。 ? 首先就可以注意到Apache NiFi 1.0...

235100
来自专栏IT综合技术分享

Kettle7.1创建资源库,资源库颜色灰色,没有Connect按钮解决办法

1.5K30
来自专栏数据库

dbGaP加密数据权限申请和数据解密

我们在NCBI、TCGA、GEO等数据库下载数据时,经常遇到controlled access(限制下载)的数据,不知道怎么弄,有时选择其他可以下载的数据代替...

55470
来自专栏FreeBuf

BurpSuite下一代渗透检测工具:BurpKit

有“渗透神器”之称的BurpSuite 是用于渗透测试Web 应用程序的集成平台。作为其丰富的功能之一,插件BurpKit提供了双向JavaScript桥梁AP...

25150
来自专栏FreeBuf

Linux爆新漏洞,长按回车键70秒即可获得root权限

按住回车70秒,黑客就能在linux系统绕过认证,进而获取root权限,并能远程控制经过加密的linux系统。 漏洞来源 这个安全问题来源于Cryptsetu...

33650
来自专栏网站漏洞修补

WordPress最新版本网站安全漏洞详情与修复

wordpress 目前互联网的市场占有率较高,许多站长以及建站公司都在使用这套开源的博客建站系统来设计网站,wordpress的优化以及html静态化,深受g...

15410
来自专栏好好学java的技术栈

java实现支付宝支付完整过程(沙箱测试环境,下篇整合ssm)

36630
来自专栏魏艾斯博客www.vpsss.net

魏艾斯博客重装 CentOS 系统和添加 Let’s Encrypt 免费 SSL 证书过程全记录

常来魏艾斯博客的朋友都知道,老魏一直用的 http 协议,也有想法把 https 提到议程上来,总也不得时间。最近终于得了空赶紧规划一下,借机会把云服务器也重新...

51890

扫码关注云+社区

领取腾讯云代金券