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 $_FILES函数详解
Mar 09 PHP
解析linux下安装memcacheq(mcq)全过程笔记
Jun 27 PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 PHP
php mysql_real_escape_string函数用法与实例教程
Sep 30 PHP
php实现天干地支计算器示例
Mar 14 PHP
用php守护另一个php进程的例子
Feb 13 PHP
标准PHP的AES加密算法类
Mar 12 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
Apr 17 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
基于Swoole实现PHP与websocket聊天室
Aug 03 PHP
php中strtotime函数性能分析
Nov 20 PHP
浅谈Laravel中的三种中间件的作用
Oct 13 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+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
PHP实现自动对图片进行滚动显示的方法
2015/03/12 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
php基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
vue 左滑删除功能的示例代码
2019/01/28 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
[22:20]初生之犊-TI4第5名LGD战队纪录片
2014/08/13 DOTA
使用python实现生成用户信息
2017/03/20 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
对pandas中Series的map函数详解
2018/07/25 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
毕业生怎样写好自荐信
2013/11/11 职场文书
公益广告宣传方案
2014/02/28 职场文书
篮球比赛策划方案
2014/06/05 职场文书
销售队伍口号
2014/06/11 职场文书
公司员工辞职信范文
2015/05/12 职场文书
起诉书范文
2015/05/20 职场文书
理想国读书笔记
2015/06/25 职场文书
教师节简报
2015/07/20 职场文书
小学班主任工作随笔
2015/08/15 职场文书