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 相关文章推荐
PHP5/ZendEngine2的改进
Oct 09 PHP
php 静态页面中显示动态内容
Aug 14 PHP
PHP 基本语法格式
Dec 15 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
May 07 PHP
修改PHP的memory_limit限制的方法分享
Feb 21 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
May 07 PHP
windows7下安装php的php-ssh2扩展教程
Jul 04 PHP
深入分析PHP引用(&amp;)
Sep 04 PHP
PHP生成随机数的方法实例分析
Jan 22 PHP
PHP实现GIF图片验证码
Nov 04 PHP
使用PHP similar text计算两个字符串相似度
Nov 06 PHP
php构造方法中析构方法在继承中的表现
Apr 12 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学习笔记之二
2011/01/17 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
2018/04/20 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
Jquery+WebService 校验账号是否已被注册的代码
2010/07/12 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
JS前端笔试题分析
2016/12/19 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
python实现根据月份和日期得到星座的方法
2015/03/27 Python
Python简单连接MongoDB数据库的方法
2016/03/15 Python
Python函数式编程
2017/07/20 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
Django 实现图片上传和显示过程详解
2019/07/18 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
python3 re返回形式总结
2020/11/20 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
在购买印度民族服饰:Soch
2020/09/15 全球购物
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
工商管理毕业生推荐信
2013/12/24 职场文书
竞选班长演讲稿500字
2014/08/22 职场文书
生产操作工岗位职责
2014/09/16 职场文书
家庭困难证明
2014/10/12 职场文书
反四风问题学习心得体会
2016/01/22 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技