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

功能开发

1).引入第三方扩展包

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

composer require topthink/think-captcha
  • 1

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

..\vendor\topthink\think-captcha
  • 1

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>
  • 1
  • 2
  • 3
  • 4
  • 5

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) . ')';
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 打开 ..\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('验证码不正确');}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

提示

  • 建议阅读 ..\vendor\topthink\think-captcha\src\helper.php 文件,及 Captcha.php ,可以进行样式的自定义.
  • 如果前端 {:captcha_img()}有传值 id,那么后台 captcha_check() 验证也需要相应的 id 参数区分。
  • 验证结果,普遍使用 ajax 请求,以满足用户顺畅的体验.

TP5 验证码功能实现(解决点击验证码不更新的问题)相关推荐

  1. 【验证码功能合集】vue简单实现验证码功能,纯前端实现验证码,拿来即用【输入,滑动,拼图】

    效果图 可以让输入的验证码和图片验证码比对. 上面的是验证码的组件,直接复制贴里面就行了,然后引入到你需要的地方 很简单的两个步骤搞定 (1)验证码组件 这里是验证码的组件,啥也不用动,直接复制创建个 ...

  2. php 验证码功能的实现原理,php验证码实现原理

    PHP验证码实现原理 生成随机数或者字母保存到session中(验证验证码的时候用),然后对生成的数字或者字母进行绘图!然后呈现在我们眼前 刷新验证码:用js改变验证码图片所带的参数,让浏览器不读缓存 ...

  3. 手机直播系统开发中关于iOS获取图形验证码功能

    在手机直播系统开发中关于iOS获取图形验证码功能介绍,首先进入注册页面后请求图形验证码接口获取图形验证码的数字组合,然后加载到相应的页面上,在图形验证码页面我们定义了几个属性,字符串的数量.显示的线条 ...

  4. Discuz验证码功能解析

    discuz验证码功能主要在\uc_server\lib\seccode.class.php或/source/class/class_seccode.php文件中实现,这两个文件的代码基本一致,区别是 ...

  5. JS 点击验证码刷新

    <img src="/get_valid_img" id="valid-img" title="点击再换一张" class=" ...

  6. thinkphp实现发送手机验证码功能!

    php实现发送手机验证码功能如下: //发送手机验证码public function sendPhoneCodeMessage(){ vendor('SendPhoneCode.SendCode',' ...

  7. 在JSP中动态生成随机验证码,登录时后台校验验证码,以及如何避免同一个验证码被重复提交爆破密码...

    只需几步就可以生成动态随机的验证码,最终效果如下图: 一 前台显示页面login.jsp 其中验证码显示的是一张图片,链接指向的是生成验证码的servlet,同时点击图片后触发changeImg()这 ...

  8. php验证码大全(实例分享),php图片验证码的例子

    代码如下: /** * 生成验证码图片 * site www.jbxue.com * @param String $word 验证码在session中的变量名称 */ function valiCod ...

  9. TP5 验证码功能实现

    功能开发 1).引入第三方扩展包 进行 TP5 的开发,Composer 的使用会成为重要技能  以windows为例子,输入命令: composer require topthink/think-c ...

最新文章

  1. 2018-3-1 算法学习部分
  2. AttributeError: ‘list‘ object has no attribute ‘ndim‘
  3. 产品经理如何催项目进度?
  4. Python rabbitmq的使用(五)
  5. 一文弄懂二叉树三种遍历
  6. bzoj 1295: [SCOI2009]最长距离(SPFA)
  7. 组概念_【收藏】学习质谱一定要知道的6组概念
  8. 主流前端框架的介绍优缺点
  9. 快排的单指针扫描和双指针扫描
  10. 单位电脑禁用u盘_组策略禁止u盘_注册表禁止u盘
  11. 微信素材管理,新增临时素材
  12. 2.1、ROS+PX4仿真---定点飞行控制
  13. 请假代码java web_学生请假管理系统
  14. VBA---打开excel
  15. 【牛客网-公司真题-前端入门篇】——小米秋招笔试-前端
  16. 2.css字体 文本属性
  17. POI在指定excel插入行java
  18. 每月一书(202112):《王阳明心学》
  19. 巧用“sfc scannow”命令扫描修复Win8系统
  20. 明解C语言入门篇练习题第十三章

热门文章

  1. SQL基础【一、SQL简介】
  2. MySQL 请选择合适的列!
  3. oracle冷备份/恢复
  4. 单例模式实现方式详解
  5. Codeforces-33C. Wonderful Randomized Sum
  6. 【LeetCode】69. Sqrt(x) (2 solutions)
  7. sqlserver结果集转为字符串
  8. 2011让人蛋疼的签名
  9. java访问jar中的资源问题代码
  10. 直角三角形的边角关系_华师大版九年级第四章解直角三角形,知识点讲解加经典例题分析...