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 相关文章推荐
删除无限分类并同时删除它下面的所有子分类的方法
Aug 08 PHP
PHP项目开发中最常用的自定义函数整理
Dec 02 PHP
使用PHP遍历文件夹与子目录的函数代码
Sep 26 PHP
PHP中的生成XML文件的4种方法分享
Oct 06 PHP
作为PHP程序员应该了解MongoDB的五件事
Jun 03 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
Aug 11 PHP
php实现对象克隆的方法
Jun 20 PHP
PHP如何实现Unicode和Utf-8编码相互转换
Jul 29 PHP
PHP开发制作一个简单的活动日程表Calendar
Jun 20 PHP
php无法连接mysql数据库的正确解决方法
Jul 01 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
Oct 24 PHP
php pdo连接数据库操作示例
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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
PHP开发微信支付的代码分享
2014/05/25 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
基于JQuery的日期联动实现代码
2011/02/24 Javascript
js三种排序算法分享
2012/08/16 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
2017/12/19 Javascript
详解各版本React路由的跳转的方法
2018/05/10 Javascript
VUE兄弟组件传值操作实例分析
2019/10/26 Javascript
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
详解Python中的动态属性和特性
2018/04/07 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
结束运行python的方法
2020/06/16 Python
Python接收手机短信的代码整理
2020/08/02 Python
经理秘书岗位职责
2013/11/14 职场文书
简历中的自我评价怎么写
2014/01/29 职场文书
学生思想表现的评语
2014/01/30 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
公务员诚信承诺书
2014/05/26 职场文书
写字楼租赁意向书
2014/07/30 职场文书
2014年重阳节敬老活动方案
2014/09/16 职场文书
销售2014年度工作总结
2014/12/08 职场文书
判断Python中的Nonetype类型
2021/05/25 Python
mysql 带多个条件的查询方式
2021/06/05 MySQL
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫
详解Vue3使用axios的配置教程
2022/04/29 Vue.js