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 字符转义 注意事项
May 27 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
Dec 19 PHP
php无限遍历目录示例
Feb 21 PHP
php 过滤英文标点符号及过滤中文标点符号代码
Jun 12 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
Jun 12 PHP
ThinkPHP3.1查询语言详解
Jun 19 PHP
PHP生成二维码的两个方法和实例
Jul 01 PHP
php similar_text()函数的定义和用法
May 12 PHP
简单实现PHP留言板功能
Dec 21 PHP
Mac系统完美安装PHP7详细教程
Jun 06 PHP
PHP chr()函数讲解
Feb 11 PHP
Laravel中GraphQL接口请求频率实战记录
Sep 01 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+ajax实现文件切割上传功能示例
2020/03/03 PHP
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
2014/05/02 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
2018/04/18 Javascript
详解关于微信setData回调函数中的坑
2019/02/18 Javascript
vue远程加载sfc组件思路详解
2019/12/25 Javascript
详解Typescript 内置的模块导入兼容方式
2020/05/31 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
[01:11:32]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
Python深入学习之特殊方法与多范式
2014/08/31 Python
Python中使用第三方库xlrd来写入Excel文件示例
2015/04/05 Python
Python实现自动发送邮件功能
2021/03/02 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
python使用zip将list转为json的方法
2018/12/31 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
手把手教你配置JupyterLab 环境的实现
2021/02/02 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
Melissa鞋马来西亚官方网站:MDreams马来西亚
2018/04/05 全球购物
专科毕业生求职简历的自我评价
2013/10/12 职场文书
写演讲稿所需要注意的4个条件
2014/01/09 职场文书
幼儿园教师辞职信
2014/01/18 职场文书
《争吵》教学反思
2014/02/15 职场文书
旅游与酒店管理专业求职信
2014/07/21 职场文书
Python机器学习之PCA降维算法详解
2021/05/19 Python
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers