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 相关文章推荐
我的论坛源代码(七)
Oct 09 PHP
攻克CakePHP系列三 表单数据增删改
Oct 22 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
May 15 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
thinkphp循环结构用法实例
Nov 24 PHP
WordPress过滤垃圾评论的几种主要方法小结
Jul 11 PHP
thinkPHP显示不出验证码的原因与解决方法分析
May 20 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 PHP
PHP中实现中文字串截取无乱码的解决方法
May 29 PHP
PHP获取当前系统时间的方法小结
Oct 03 PHP
PHP常用函数之base64图片上传功能详解
Oct 21 PHP
php 使用 __call实现重载功能示例
Nov 18 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
PHP中数字检测is_numeric与ctype_digit的区别介绍
2012/10/04 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
JavaScript 继承详解(六)
2016/10/11 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
jquery仿京东侧边栏导航效果
2017/03/02 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
微信小程序实现上传图片裁剪图片过程解析
2019/08/22 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
2014/11/06 Python
python创建一个最简单http webserver服务器的方法
2015/05/08 Python
python查看zip包中文件及大小的方法
2015/07/09 Python
对Python的zip函数妙用,旋转矩阵详解
2018/12/13 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
django实现日志按日期分割
2020/05/21 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
秘书专业自荐信范文
2013/12/26 职场文书
年会主持词结束语
2014/03/27 职场文书
环保倡议书500字
2014/05/15 职场文书
大学新闻系自荐书
2014/05/31 职场文书
纪念九一八事变演讲稿:青少年应树立远大理想
2014/09/14 职场文书
考博导师推荐信范文
2015/03/27 职场文书
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python