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语法速查表
Dec 06 PHP
通过PHP修改Linux或Unix口令的方法分享
Jan 30 PHP
php二维数组排序与默认自然排序的方法介绍
Apr 27 PHP
深入解析php中的foreach问题
Jun 30 PHP
php网站判断用户是否是手机访问的方法
Nov 01 PHP
PHP微框架Dispatch简介
Jun 12 PHP
PHP生成数组再传给js的方法
Aug 07 PHP
THINKPHP2.0到3.0有哪些改进之处
Jan 04 PHP
thinkPHP使用post方式查询时分页失效的解决方法
Dec 09 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
Apr 05 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
PHP匿名函数(闭包函数)详解
Mar 22 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中的 == 运算符进行字符串比较
2006/11/26 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
js实现格式化金额,字符,时间的方法
2015/02/26 Javascript
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
简单的jQuery入门指引
2015/07/28 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
微信小程序 滚动到某个位置添加class效果实现代码
2017/04/19 Javascript
详解vuejs几种不同组件(页面)间传值的方式
2017/06/01 Javascript
React应用中使用Bootstrap的方法
2017/08/15 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
详解jQuery中的easyui
2018/09/02 jQuery
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
Vue父组件监听子组件生命周期
2020/09/03 Javascript
Python随机生成彩票号码的方法
2015/03/05 Python
Python中强大的命令行库click入门教程
2016/12/26 Python
浅析Python中return和finally共同挖的坑
2017/08/18 Python
python将.ppm格式图片转换成.jpg格式文件的方法
2018/10/27 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
Django学习之文件上传与下载
2019/10/06 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
基于python requests selenium爬取excel vba过程解析
2020/08/12 Python
详解CSS的border边框属性及其在CSS3中的新特性
2016/05/10 HTML / CSS
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
法院实习人员自我鉴定
2013/09/26 职场文书
大学生志愿者感言
2014/01/15 职场文书
阅兵口号
2014/06/19 职场文书
新员工考核评语
2014/12/31 职场文书
Java 实现限流器处理Rest接口请求详解流程
2021/11/02 Java/Android