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中函数的形参与实参的问题说明
Sep 01 PHP
php header示例代码(推荐)
Sep 08 PHP
九个你必须知道而且又很好用的php函数和特点
Aug 08 PHP
2014过年倒计时示例
Jan 31 PHP
php中$_GET与$_POST过滤sql注入的方法
Nov 03 PHP
php实现读取内存顺序号
Mar 29 PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 PHP
php使用gzip压缩传输js和css文件的方法
Jul 29 PHP
详解WordPress开发中wp_title()函数的用法
Jan 07 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
Mar 07 PHP
yii2学习教程之5种内置行为类详解
Aug 03 PHP
PHP实现页面静态化深入讲解
Mar 04 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
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
php利用curl抓取新浪微博内容示例
2014/04/27 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
phpfpm的作用和用法
2019/10/10 PHP
parentElement,srcElement的使用小结
2014/01/13 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
微信小程序引入VANT组件的方法步骤
2019/09/19 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
Python内置函数——__import__ 的使用方法
2017/11/24 Python
python遍历小写英文字母的方法
2019/01/02 Python
python mac下安装虚拟环境的图文教程
2019/04/12 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
Lombok插件安装(IDEA)及配置jar包使用详解
2020/11/04 Python
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
新闻专业大学生找工作的自我评价
2013/10/30 职场文书
人事主管的岗位职责
2013/11/16 职场文书
《小小雨点》教学反思
2014/02/18 职场文书
工程专业应届生求职信
2014/02/19 职场文书
网络技术专业求职信
2014/05/02 职场文书
鸟的天堂导游词
2015/01/31 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
2015年副班长工作总结
2015/05/15 职场文书
学术会议领导致辞
2015/07/29 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书
MySQL 可扩展设计的基本原则
2021/05/14 MySQL