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 相关文章推荐
利用js调用后台php进行数据处理原码
Oct 09 PHP
IStream与TStream之间的相互转换
Aug 01 PHP
PHP 字符串 小常识
Jun 05 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
Nov 02 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
Jun 20 PHP
php中adodbzip类实例
Dec 08 PHP
Mac OS下配置PHP+MySql环境
Feb 25 PHP
PHP数组实例详解
Jun 26 PHP
php写app接口并返回json数据的实例(分享)
May 20 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
php 读写json文件及修改json的方法
Mar 07 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
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
PHP parse_url 一个好用的函数
2009/10/03 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
2014/10/21 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
PHP生成指定随机字符串的简单实现方法
2015/04/01 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
2019/10/17 PHP
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
Kotlin学习第一步 kotlin语法特性
2017/05/25 Javascript
详解webpack分包及异步加载套路
2017/06/29 Javascript
关于js中的鼠标事件总结
2017/07/11 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
教你如何用node连接redis的示例代码
2018/07/12 Javascript
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
js实现ajax的用户简单登入功能
2020/06/18 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
python实现备份目录的方法
2015/08/03 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
PyCharm代码提示忽略大小写设置方法
2018/10/28 Python
django实现用户注册实例讲解
2019/10/30 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
安踏广告词改编版
2014/03/21 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
2015年销售人员工作总结
2015/04/07 职场文书
辞职离别感言
2015/08/04 职场文书
任命书格式范文
2015/09/22 职场文书
升职感谢领导的话语及升职感谢信
2019/06/24 职场文书
浅谈Node的内存泄露问题
2022/05/06 NodeJs
create-react-app开发常用配置教程
2022/06/25 Javascript
Nginx报404错误的详细解决方法
2022/07/23 Servers