ThinkPHP实现生成和校验验证码功能


Posted in PHP onApril 28, 2017

使用ThinkPHP实现生成/校验验证码功能,供大家参考,具体内容如下

首先了解父类Verity.class.php(ThinkPHP/Library/Think/Verity.class.php)中的一些函数

1:check() 校验验证码是否正确

2:entry()输出验证码并把验证码的值保存的session中

3:authcode() 加密验证码(此方法在check()方法中被调用)

控制器生成验证码代码:

//验证码
 function verifyImg(){

  //验证码配置
  $cfg = array(
   'imageH' => 30, // 验证码图片高度
   'imageW' => 100, // 验证码图片宽度
   'fontSize' => 15, // 验证码字体大小(px)
   'length' => 4, // 验证码位数
   'fontttf' => '4.ttf', // 验证码字体,不设置随机获取
  );

  //实例化Verify类 自动调用构造函数,把$cfg信息传给$config
  $verify = new Verify($cfg);
  $verify -> entry(); //输出验证码
 }

前台显示验证码

<!--分组/控制器/方法--> <img src="<{$smarty.const.__CONTROLLER__}>/verifyImg" onclick = "this.src='<{$smarty.const.__CONTROLLER__}>/verifyImg/'+Math.random()" alt="验证码" />

控制器校验验证码(以登陆为例)

//登陆
 function login(){
  
  //两个逻辑:展示,收集
  if (!empty($_POST)) {

   $verify = new Verify();

   //接收验证码
   $captcha = $_POST['captcha'];
   //check()方法校验验证码
   if ($verify->check($captcha)) {
    echo "正确";
   }else{
    echo "错误";
   }
  }

  //调用view视图
  $this->display();
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP脚本数据库功能详解(中)
Oct 09 PHP
php UTF-8、Unicode和BOM问题
May 18 PHP
PHP中的session永不过期的解决思路及实现方法分享
Apr 20 PHP
PHP得到某段时间区间的时间戳 php定时任务
Apr 12 PHP
PHP 中关于ord($str)&amp;gt;0x80的详细说明
Sep 23 PHP
深入php 正则表达式的学习探讨
Jun 06 PHP
php分页代码学习示例分享
Feb 20 PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 PHP
PHP实现全角字符转为半角方法汇总
Jul 09 PHP
php实现递归的三种基本方式
Jul 04 PHP
PHP的简单跳转提示的实现详解
Mar 14 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 PHP
PHP后台微信支付和支付宝支付开发
Apr 28 #PHP
ThinkPHP中create()方法自动验证表单信息
Apr 28 #PHP
ThinkPHP实现简单登陆功能
Apr 28 #PHP
ThinkPHP实现分页功能
Apr 28 #PHP
ThinkPHP实现附件上传功能
Apr 27 #PHP
使用ThinkPHP生成缩略图及显示
Apr 27 #PHP
php实现头像上传预览功能
Apr 27 #PHP
You might like
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
php开发环境配置记录
2011/01/14 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
php面试实现反射注入的详细方法
2019/09/30 PHP
原生js 秒表实现代码
2012/07/24 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
javascript常见用法总结
2014/05/22 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
2016/07/24 Javascript
Node.js学习入门
2017/01/03 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
基于jQuery实现数字滚动效果
2017/01/16 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
基于JavaScript实现抽奖系统
2018/01/16 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
微信小程序实现录音时的麦克风动画效果实例
2019/05/18 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
node.JS路径解析之PATH模块使用方法详解
2020/02/06 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
python和shell变量互相传递的几种方法
2013/11/20 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
Python3 使用pillow库生成随机验证码
2019/08/26 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
初中政治教学反思
2014/01/17 职场文书
十八届三中全会报告学习材料
2014/02/17 职场文书
2015年酒店客房部工作总结
2015/04/25 职场文书
flex弹性布局详解
2022/03/20 HTML / CSS
类和原型的设计模式之复制与委托差异
2022/07/07 Javascript