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 相关文章推荐
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
Mar 03 PHP
php中的比较运算符详解
Oct 28 PHP
PHP小教程之实现双向链表
Jun 12 PHP
php curl登陆qq后获取用户信息时证书错误
Feb 03 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
May 11 PHP
基于PHP实现的事件机制实例分析
Jun 18 PHP
PHP magento后台无法登录问题解决方法
Nov 24 PHP
Laravel网站打开速度优化的方法汇总
Jul 16 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
Mar 31 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
May 28 PHP
apache集成php7.3.5的详细步骤
Jun 20 PHP
php+lottery.js实现九宫格抽奖功能
Jul 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中显示数字验证码的修改方法
2007/03/21 PHP
修改PHP的memory_limit限制的方法分享
2012/02/21 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
2016/05/28 PHP
用cookies实现的可记忆的样式切换效果代码下载
2007/12/24 Javascript
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
使用javascript实现简单的选项卡切换
2015/01/09 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
vue-cli+webpack记事本项目创建
2017/04/01 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
python生成日历实例解析
2014/08/21 Python
构建Python包的五个简单准则简介
2015/06/15 Python
Python中random模块常用方法的使用教程
2020/10/04 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
法国和欧洲海边和滑雪度假:Pierre & Vacances
2017/01/04 全球购物
Foreo国际站:Foreo International
2018/10/29 全球购物
美国NBA官方商店:NBA Store
2019/04/12 全球购物
大学学习个人的自我评价
2014/02/18 职场文书
入党自荐书范文
2014/03/09 职场文书
岗位职责风险点
2014/03/12 职场文书
社区巾帼文明岗事迹材料
2014/06/03 职场文书
工作疏忽、懈怠的检讨书
2014/09/11 职场文书
2014年业务员工作总结范文
2014/11/17 职场文书
学生会个人总结范文
2015/02/15 职场文书
民事二审代理词
2015/05/25 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
VW、VH适配移动端的解决方案与常见问题
2023/05/21 HTML / CSS