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 相关文章推荐
FCKeditor的安装(PHP)
Jan 13 PHP
PHP 文件类型判断代码
Mar 13 PHP
PHP合并数组+与array_merge的区别分析
Aug 01 PHP
php中批量删除Mysql中相同前缀的数据表的代码
Jul 01 PHP
php学习笔记之面向对象
Nov 08 PHP
Yii实现MySQL多数据库和读写分离实例分析
Dec 03 PHP
php中curl使用指南
Feb 05 PHP
php实现在服务器端调整图片大小的方法
Jun 16 PHP
php多线程实现方法及用法实例详解
Oct 26 PHP
Laravel搭建后台登录系统步骤详解
Jul 26 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 PHP
is_file和file_exists效率比较
Mar 14 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
一个MYSQL操作类
2006/11/16 PHP
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
CI框架学习笔记(二) -入口文件index.php
2014/10/27 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
laravel执行php artisan migrate报错的解决方法
2019/10/09 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
JavaScript与函数式编程解释
2007/04/27 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
javascript常见操作汇总
2014/09/03 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
Javascript 判断两个IP是否在同一网段实例代码
2016/11/28 Javascript
AngularJS指令中的绑定策略实例分析
2016/12/14 Javascript
前端js弹出框组件使用方法
2020/08/24 Javascript
js如何获取网页所有图片
2017/05/12 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[48:31]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第一场 2月2日
2021/03/11 DOTA
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
Python 处理数据的实例详解
2017/08/10 Python
TensorFlow索引与切片的实现方法
2019/11/20 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
AOP的定义以及作用
2013/09/08 面试题
RIP版本1跟版本2的区别
2013/12/30 面试题
工程部主管岗位职责
2013/11/17 职场文书
打架检讨书300字
2014/02/02 职场文书
社区禁毒工作方案
2014/06/02 职场文书
2014年女职工工作总结
2014/11/27 职场文书
某某店铺的开业庆典主持词范本
2019/11/25 职场文书
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers