ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例


Posted in PHP onFebruary 07, 2020

本文实例讲述了ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能。分享给大家供大家参考,具体如下:

验证码现在是用户登录、支付等很多环节的必备元素,ThinkPHP5&5.1给我们提供了验证码的生成方式,也是非常的简单,在这里写一个完整的验证码验证的使用方法,供大家参考。

前台用户在登录时候需要验证码验证才能登录。首先使用Composer安装think-captcha扩展包:

composer require topthink/think-captcha

在需要显示验证码的地方:

<tr>
 <th>请输入验证码:</th>
 <td>
  <input type="text" name="captcha" class="inp01"/>
  <img src="{:url('index/login/verify')}" alt="验证码加载中" id="captcha"/>
 </td>
</tr>

其中verify是生成验证码的方法:

public function verify()
{
  $config =  [
    // 验证码字体大小
    'fontSize'  =>  15,
    // 验证码位数
    'length'   =>  3,
    // 关闭验证码杂点
    'useNoise'  =>  false,
  ];
  $captcha = new \think\captcha\Captcha($config);
  return $captcha->entry();
}

其中$config是验证码的配置项,具体有哪些配置内容可以参考手册。

使用Ajax或者jquery-validate进行验证码的验证,也可以提交以后进行验证:

public function checkcapcha()
{
  $captcha = new \think\captcha\Captcha();
  if( !$captcha->check(input('post.captcha')))
  {
   return false;
  }else{
    return true;
  }
}

为了实现点击验证码刷新的功能,还要写js代码:

$("#captcha").click(function(event) {
  this.src = "{:url('index/login/verify')}?"+Math.random();
});

这样就实现了验证码的验证功能,是不是非常简单?

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP二维数组的去重问题解析
Jul 17 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
Dec 06 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
Sep 13 PHP
PHP引用(&amp;)各种使用方法实例详解
Mar 20 PHP
成为好程序员必须避免的5个坏习惯
Jul 04 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
Jan 07 PHP
简单PHP会话(session)说明介绍
Aug 21 PHP
CI框架表单验证实例详解
Nov 21 PHP
PHP PDOStatement::errorInfo讲解
Jan 31 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
May 13 PHP
thinkPHP框架乐观锁和悲观锁实例分析
Oct 30 PHP
YII2框架中查询生成器Query()的使用方法示例
Mar 18 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
Feb 07 #PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 #PHP
php测试kafka项目示例
Feb 06 #PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
Feb 06 #PHP
PHP实现常用排序算法的方法
Feb 05 #PHP
PHP ElasticSearch做搜索实例讲解
Feb 05 #PHP
PHP实现新型冠状病毒疫情实时图的实例
Feb 04 #PHP
You might like
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
2007/09/24 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
window.open关于浏览器拦截问题分析及解决方法
2013/02/05 Javascript
web网页按比例显示图片实现原理及js代码
2013/08/09 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
vue实现未登录跳转到登录页面的方法
2018/07/17 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
浅析JavaScript预编译和暗示全局变量
2020/09/03 Javascript
Javascript生成器(Generator)的介绍与使用
2021/01/31 Javascript
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
利用Python yagmail三行代码实现发送邮件
2018/05/11 Python
python多进程实现文件下载传输功能
2018/07/28 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
python面向对象法实现图书管理系统
2019/04/19 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
荟萃全球保健品:维他购
2018/05/09 全球购物
Gerry Weber德国官网:优质女性时装,德国最大的时装公司之一
2019/11/02 全球购物
下面这个程序执行后会有什么错误或者效果
2014/11/03 面试题
医学生实习自荐信
2013/10/01 职场文书
工商局副局长个人对照检查材料
2014/09/25 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
python - timeit 时间模块
2021/04/06 Python
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
JavaScript实现登录窗体
2021/06/22 Javascript