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 读取文件内容代码(txt,js等)
Dec 06 PHP
一些被忽视的PHP函数(简单整理)
Apr 30 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
Jan 11 PHP
PHP--用万网的接口实现域名查询功能
Dec 13 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
Aug 11 PHP
PHP之autoload运行机制实例分析
Aug 28 PHP
php中$_GET与$_POST过滤sql注入的方法
Nov 03 PHP
PHP PDO fetch 模式各种参数的输出结果一览
Jan 07 PHP
php通过sort()函数给数组排序的方法
Mar 18 PHP
PHP7新功能总结
Apr 14 PHP
laravel框架模型、视图与控制器简单操作示例
Oct 10 PHP
php的lavarel框架中join和orWhere的用法
Dec 28 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
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
PHP 中使用ajax时一些常见错误总结整理
2017/02/27 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
select标记美化--JS式插件、后期加载
2013/04/01 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
javascript实现table表格隔行变色的方法
2015/05/13 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
2018/01/09 jQuery
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
React中使用async validator进行表单验证的实例代码
2018/08/17 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
Python中为什么要用self探讨
2015/04/14 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
巴西Mr. Cat在线商店:购买包包和鞋子
2019/09/08 全球购物
一套软件开发工程师笔试题
2015/05/18 面试题
中文系师范生自荐信
2013/10/01 职场文书
优秀毕业生找工作自荐信
2014/06/23 职场文书
教师对照四风自我剖析材料
2014/09/30 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
老人节主持词
2015/07/04 职场文书
三下乡活动心得体会
2016/01/23 职场文书
Redis如何一键部署脚本
2021/04/12 Redis
python 网络编程要点总结
2021/06/18 Python
mysql联合索引的使用规则
2021/06/23 MySQL
python之基数排序的实现
2021/07/26 Python