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+MSSQL分页的例子
Oct 09 PHP
PHP执行速率优化技巧小结
Mar 15 PHP
PHP中文URL编解码(urlencode()rawurlencode()
Jul 03 PHP
PHP __autoload函数(自动载入类文件)的使用方法
Feb 04 PHP
PHP连接局域网MYSQL数据库的简单实例
Aug 26 PHP
php跨站攻击实例分析
Oct 28 PHP
php中mt_rand()随机数函数用法
Nov 24 PHP
CodeIgniter读写分离实现方法详解
Jan 20 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
Jun 13 PHP
PHP符合PSR编程规范的实例分享
Dec 21 PHP
HTTP头隐藏PHP版本号实现过程解析
Dec 09 PHP
PHP如何防止用户重复提交表单
Dec 09 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
wiki-shan写的php在线加密的解密程序
2008/09/07 PHP
php简单浏览目录内容的实现代码
2013/06/07 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
jquery attr 设定src中含有&amp;(宏)符号问题的解决方法
2011/07/26 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别
2016/05/31 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
jQuery实现鼠标滑过图片移动特效
2016/12/08 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
Js利用正则表达式去除字符串的中括号
2020/11/23 Javascript
Python 装饰器深入理解
2017/03/16 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
Python类继承和多态原理解析
2020/02/05 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
奥地利网上书店:Weltbild
2017/07/14 全球购物
瑞士网球商店:Tennis-Point
2020/03/12 全球购物
东方通信股份有限公司VC面试题
2014/08/27 面试题
学校办公室主任职责
2013/12/27 职场文书
工作过失检讨书
2014/02/23 职场文书
计算机专业毕业生求职信
2014/04/30 职场文书
优秀班集体先进事迹材料
2014/05/28 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
春节慰问信范文
2015/02/15 职场文书
爱心募捐通知范文
2015/04/27 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
如何使用SQL Server语句创建表
2022/04/12 SQL Server