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下几种删除目录的方法总结
Aug 19 PHP
PHP小程序自动提交到自助友情连接
Nov 24 PHP
一步一步学习PHP(3) php 函数
Feb 15 PHP
PHP的explode和implode的使用说明
Jul 17 PHP
通过php快速统计某个数据库中每张表的数据量
Sep 04 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
Jun 24 PHP
php+curl 发送图片处理代码分享
Jul 09 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
Jun 22 PHP
关于PHP内置的字符串处理函数详解
Feb 04 PHP
详解PHP字符串替换str_replace()函数四种用法
Oct 13 PHP
PHP实现随机数字、字母的验证码功能
Aug 01 PHP
Laravel 简单实现Ajax滚动加载示例
Oct 22 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 获取目录下的图片并随机显示的代码
2009/12/28 PHP
PHP开启gzip页面压缩实例代码
2010/03/11 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
js或css文件后面跟参数的原因说明
2010/01/09 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
AngularJS中$http的交互问题
2017/03/29 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
JS代码实现电脑配置检测功能
2018/03/21 Javascript
JavaScript函数节流和函数去抖知识点学习
2018/07/31 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
微信小程序日历/日期选择插件使用方法详解
2018/12/28 Javascript
layui表格 列自动适应大小失效的解决方法
2019/09/06 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
2019/11/04 Javascript
Element Carousel 走马灯的具体实现
2020/07/26 Javascript
vue-router定义元信息meta操作
2020/12/07 Vue.js
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
如何使用Flask-Migrate拓展数据库表结构
2019/07/24 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
python下载的库包存放路径
2020/07/27 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
深入探究HTML5的History API
2015/07/09 HTML / CSS
最新个人职业生涯规划书
2014/01/22 职场文书
节能环保口号
2014/06/12 职场文书
旅游投诉信范文
2015/07/02 职场文书
Python OpenCV快速入门教程
2021/04/17 Python
超级详细实用的pycharm常用快捷键
2021/05/12 Python