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 相关文章推荐
第三节 定义一个类 [3]
Oct 09 PHP
第十二节 类的自动加载 [12]
Oct 09 PHP
支持php4、php5的mysql数据库操作类
Jan 10 PHP
php面向对象全攻略 (十五) 多态的应用
Sep 30 PHP
PHP中对缓冲区的控制实现代码
Sep 29 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
Nov 07 PHP
php smarty truncate UTF8乱码问题解决办法
Jun 13 PHP
php广告加载类用法实例
Sep 23 PHP
php生成年月日下载列表的方法
Apr 24 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
深入理解PHP内核(二)之SAPI探究
Nov 10 PHP
PHP的Yii框架的常用日志操作总结
Dec 08 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 SQL防注入代码集合
2008/04/25 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
利用js跨页面保存变量做菜单的方法
2008/01/17 Javascript
百度留言本js 大家可以参考下
2009/10/13 Javascript
Juqery Html(),append()等方法的Bug解决方法
2010/12/13 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
Bootstrap精简教程
2015/11/27 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
2016/05/04 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
用Python的urllib库提交WEB表单
2009/02/24 Python
Python2.7读取PDF文件的方法示例
2017/07/13 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
2018/07/06 Python
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
2019/06/18 Python
Python3-异步进程回调函数(callback())介绍
2020/05/02 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
针对HTML5的Web Worker使用攻略
2015/07/12 HTML / CSS
汽车专业人才自我鉴定范文
2013/12/29 职场文书
班级寄语大全
2014/04/10 职场文书
政风行风评议工作总结
2014/10/21 职场文书
党的群众路线教育实践活动个人整改措施范文
2014/11/04 职场文书
亮剑观后感300字
2015/06/05 职场文书
员工担保书范本
2015/09/22 职场文书
Python代码风格与编程习惯重要吗?
2021/06/03 Python
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫