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 相关文章推荐
Email+URL的判断和自动转换函数
Oct 09 PHP
模仿OSO的论坛(四)
Oct 09 PHP
用PHP实现ODBC数据分页显示一例
Oct 09 PHP
php递归列出所有文件和目录的代码
Sep 10 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
May 18 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
Mar 11 PHP
PHP 错误处理机制
Jul 06 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
Apr 26 PHP
php实用代码片段整理
Nov 12 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
Jul 10 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
PHP的Trait机制原理与用法分析
Oct 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
PHP中的加密功能
2006/10/09 PHP
php excel reader读取excel内容存入数据库实现代码
2012/12/06 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
2013/06/21 PHP
gridpanel动态加载数据的实例代码
2013/07/18 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
javascript实现简单的全选和反选功能
2016/01/05 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
JavaScript类的写法
2016/09/17 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
Angular4的输入属性与输出属性实例详解
2017/11/29 Javascript
浅谈Koa2框架利用CORS完成跨域ajax请求
2018/03/06 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
JavaScript日期工具类DateUtils定义与用法示例
2018/09/03 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
2018/10/18 Javascript
微信小程序实现图片滚动效果示例
2018/12/05 Javascript
JavaScript中的全局属性与方法深入解析
2020/06/14 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
Python文件读写保存操作的示例代码
2018/09/14 Python
python复合条件下的字典排序
2020/12/18 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
Yves Rocher伊夫·黎雪美国官网:法国始创植物美肌1959
2019/01/09 全球购物
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
英文自荐信格式
2013/11/28 职场文书
合作协议书怎么写
2014/04/18 职场文书
我爱祖国演讲稿
2014/09/02 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
社区四风存在问题及整改措施
2014/10/26 职场文书
通知函格式范文
2015/04/27 职场文书
付款证明模板
2015/06/19 职场文书
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
2021/05/25 Python