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中的一个中文字符串截取函数
Feb 14 PHP
php实现mysql同步的实现方法
Oct 21 PHP
用PHP书写安全的脚本代码
Feb 05 PHP
PHP缓存技术的多种方法小结
Aug 14 PHP
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 PHP
php弹出对话框实现重定向代码
Jan 23 PHP
简单分析ucenter 会员同步登录通信原理
Aug 25 PHP
PHP 获取ip地址代码汇总
Jul 05 PHP
php 指定范围内多个随机数代码实例
Jul 18 PHP
PHP中文字符串截断无乱码解决方法
Oct 10 PHP
详解PHP安装mysql.so扩展的方法
Dec 31 PHP
PHP中有关长整数的一些操作教程
Sep 11 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
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
2016/08/01 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
php5.x禁用eval的操作方法
2018/10/19 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
jquery模拟SELECT下拉框取值效果
2013/10/23 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
JS实现登录页密码的显示和隐藏功能
2017/12/06 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
2020/02/03 Javascript
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
浅谈Python中的bs4基础
2018/10/21 Python
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
Android面试题及答案
2015/09/04 面试题
点菜员岗位职责范本
2014/02/14 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
成龙霸王洗发水广告词
2014/03/14 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
2021/03/31 Servers
对Keras自带Loss Function的深入研究
2021/05/25 Python
SpringMVC 整合SSM框架详解
2021/08/30 Java/Android