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 smarty的预保留变量总结
Dec 04 PHP
PHP 高级课程笔记 面向对象
Jun 21 PHP
php自动加载的两种实现方法
Jun 21 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
Apr 02 PHP
php用正则表达式匹配URL的简单方法
Nov 12 PHP
PHP缓存机制Output Control详解
Jul 14 PHP
php数组排序usort、uksort与sort函数用法
Nov 17 PHP
php+jQuery.uploadify实现文件上传教程
Dec 26 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
Nov 19 PHP
PHP缓冲区用法总结
Feb 14 PHP
浅谈php中fopen不能创建中文文件名文件的问题
Feb 06 PHP
PHP多维数组排序array详解
Nov 21 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
如何给phpadmin一个保护
2006/10/09 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
php判断文件上传类型及过滤不安全数据的方法
2014/12/17 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
js 浮动层菜单收藏
2009/01/16 Javascript
javascrip客户端验证文件大小及文件类型并重置上传
2011/01/12 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
瀑布流布局并自动加载实现代码
2013/03/12 Javascript
jQuery.validate 常用方法及需要注意的问题
2013/03/20 Javascript
javascript按位非运算符的使用方法
2013/11/14 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
jquery实现华丽的可折角广告代码
2015/09/02 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
解决DataFrame排序sort的问题
2018/06/07 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
python处理“
2019/06/10 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
pycharm修改file type方式
2019/11/19 Python
社区八一活动方案
2014/02/03 职场文书
“学雷锋活动月”总结
2014/03/09 职场文书
2014年党员自我评议对照检查材料
2014/09/20 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
中学校园广播稿
2015/08/18 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python
vue 实现上传组件
2021/05/31 Vue.js
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL
Python使用永中文档转换服务
2022/05/06 Python