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实现多级树型菜单
Oct 09 PHP
不用数据库的多用户文件自由上传投票系统(3)
Oct 09 PHP
PHP三元运算符的结合性介绍
Jan 10 PHP
php定时删除文件夹下文件(清理缓存文件)
Jan 23 PHP
关于php内存不够用的快速解决方法
Oct 26 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
Dec 17 PHP
php操作(删除,提取,增加)zip文件方法详解
Mar 12 PHP
YII Framework框架教程之日志用法详解
Mar 14 PHP
Yii实现显示静态页的方法
Apr 25 PHP
深入剖析PHP中printf()函数格式化使用
May 23 PHP
功能强大的php分页函数
Jul 20 PHP
thinkphp分页集成实例
Jul 24 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
在Windows XP下安装Apache+MySQL+PHP环境
2015/02/22 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
通过一段代码简单说js中的this的使用
2013/07/23 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
JavaScript SHA512&amp;SHA256加密算法详解
2015/08/11 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
2015/08/21 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
Vue.js图片预览插件使用详解
2018/08/27 Javascript
小程序实现自定义导航栏适配完美版
2019/04/02 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
js观察者模式的弹幕案例
2020/11/23 Javascript
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python字符串替换示例
2014/04/24 Python
Python中使用strip()方法删除字符串中空格的教程
2015/05/20 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
2017/12/14 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
Python3内置模块之json编解码方法小结【推荐】
2020/12/09 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
详解Pymongo常用查询方法总结
2021/01/29 Python
CSS3 transform的skew属性值图文详解
2014/07/21 HTML / CSS
Guess荷兰官网:美国服饰品牌
2020/01/22 全球购物
深圳茁壮笔试题
2015/05/28 面试题
办理生育手续介绍信
2014/01/14 职场文书
我为党旗添光彩演讲稿
2014/09/13 职场文书
2014年保卫部工作总结
2014/11/21 职场文书
工作失误检讨书
2015/01/26 职场文书
运动会通讯稿100字
2015/07/20 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
Flask response响应的具体使用
2021/07/15 Python