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 相关文章推荐
第十节 抽象方法和抽象类 [10]
Oct 09 PHP
用 PHP5 轻松解析 XML
Dec 04 PHP
php 友好URL的实现(吐血推荐)
Oct 04 PHP
PHP高级OOP技术演示
Aug 27 PHP
php中检查文件或目录是否存在的代码小结
Oct 22 PHP
php实现mysql备份恢复分卷处理的方法
Dec 26 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
Feb 16 PHP
详谈PHP编码转换问题
Jul 28 PHP
php parse_str() 函数的定义和用法
May 23 PHP
Yii2实现增删改查后留在当前页的方法详解
Jan 13 PHP
PHP新特性详解之命名空间、性状与生成器
Jul 18 PHP
PHP程序守护进程化实现方法详解
Jul 16 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
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
jQuery 行级解析读取XML文件(附源码)
2009/10/12 Javascript
一些mootools的学习资源
2010/02/07 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
JavaScript控制网页层收起和展开效果的方法
2015/04/15 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
2020/09/01 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
NodeJs实现定时任务的示例代码
2017/12/05 NodeJs
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
Vue.js实现表格渲染的方法
2018/09/07 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
关于JSON解析的实现过程解析
2019/10/08 Javascript
python查询mysql,返回json的实例
2018/03/26 Python
Django跨域请求问题的解决方法示例
2018/06/16 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
Python生成器generator用法示例
2018/08/10 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
德国隐形眼镜店:LuckyLens
2018/07/29 全球购物
大学四年学习的自我评价分享
2013/12/09 职场文书
物理教师自荐信范文
2013/12/28 职场文书
护士思想汇报
2014/01/12 职场文书
幼儿园家长会邀请函
2014/01/15 职场文书
学生手册家长评语
2014/02/10 职场文书
班级体育活动总结
2014/07/05 职场文书
校园广播稿精选
2014/10/01 职场文书
外出学习心得体会范文
2016/01/18 职场文书
大学生创业计划书常用模板
2019/08/07 职场文书
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python