热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

thinkphp3.2代码生成并点击验证码

本人小菜鸟一仅仅。为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识。小菜鸟创

本人小菜鸟一仅仅。为了自我学习和交流PHP(jquery,linux,lamp,shell,Javascript,server)等一系列的知识。小菜鸟创建了一个群。希望光临本博客的人能够进来交流。寻求共同发展。搭建平台。

本人博客也有很多的技术文档,希望能够为你提供一些帮助。



QQ群:   191848169               QQ:450225664



背景:之前说的自己做的项目。偷懒登录模块没加验证码,想了想还是加上,找了下tp的文档,发现是有整合进去的,特记录下。

一、实例化生成验证码的类(该方法放到IndexController里面便于訪问)

[php] view plaincopy在CODE上查看代码片派生到我的代码片
  1. /** 
  2.  *  
  3.  * 验证码生成 
  4.  */  
  5. public function verify_c(){  
  6.     $Verify = new \Think\Verify();  
  7.     $Verify->fontSize = 18;  
  8.     $Verify->length   = 4;  
  9.     $Verify->useNoise = false;  
  10.     $Verify->codeSet = '0123456789';  
  11.     $Verify->imageW = 130;  
  12.     $Verify->imageH = 50;  
  13.     //$Verify->expire = 600;  
  14.     $Verify->entry();  
  15. }  
二、前台须要生成验证码的图片src属性指向
[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <p class&#61;"top15 captcha" id&#61;"captcha-container">  
  2.   <input name&#61;"verify" width&#61;"50%" height&#61;"50" class&#61;"captcha-text" placeholder&#61;"验证码" type&#61;"text">                  
  3.   <img width&#61;"30%" class&#61;"left15" height&#61;"50" alt&#61;"验证码" src&#61;"{:U(&#39;Home/Index/verify_c&#39;,array())}" title&#61;"点击刷新">  
  4. p>  
三、写完上面的后&#xff0c;页面初始化的验证码就能够出现了&#xff0c;以下要写的就是点击验证码图片后&#xff0c;刷新出新的验证码图片(通过jquery改动图片的src属性来完毕&#xff0c;请求的处理函数一样。仅仅是在请求后加一个随机数&#xff0c;差别上一张图片的请求)
[Javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1. // 验证码生成  
  2. var captcha_img &#61; $(&#39;#captcha-container&#39;).find(&#39;img&#39;)  
  3. var verifyimg &#61; captcha_img.attr("src");  
  4. captcha_img.attr(&#39;title&#39;&#39;点击刷新&#39;);  
  5. captcha_img.click(function(){  
  6.     if( verifyimg.indexOf(&#39;?

    &#39;

    )>0){  
  7.         $(this).attr("src", verifyimg&#43;&#39;&random&#61;&#39;&#43;Math.random());  
  8.     }else{  
  9.         $(this).attr("src", verifyimg.replace(/\?

    .*$/,

    &#39;&#39;)&#43;&#39;?&#39;&#43;Math.random());  
  10.     }  
  11. });  
四、校验验证码输入是否正确

a.在common文件夹下的function.php里增加全局函数

[php] view plaincopy在CODE上查看代码片派生到我的代码片
  1. /** 
  2.  * 验证码检查 
  3.  */  
  4. function check_verify($code$id &#61; ""){  
  5.     $verify &#61; new \Think\Verify();  
  6.     return $verify->check($code$id);  
  7. }  
b.在表单提交的controller相应的处理方法里加入检查代码
[php] view plaincopy在CODE上查看代码片派生到我的代码片
  1. // 检查验证码  
  2. $verify &#61; I(&#39;param.verify&#39;,&#39;&#39;);  
  3. if(!check_verify($verify)){  
  4.     $this->error("亲&#xff0c;验证码输错了哦&#xff01;",$this->site_url,9);  
  5. }  
到此tp3.2验证码的使用就能够了。

补充&#xff1a;我在写的时候将四的b步骤放到一个ajax里验证&#xff0c;返回一次检验结果。然后再根据返回结果确定是否要提交表单&#xff0c;可是在验证码通过第一次的校验后。第二次它不能够做到这一点&#xff0c;现在不想要一个明确的原因。

版权声明&#xff1a;本文博客原创文章&#xff0c;博客&#xff0c;未经同意&#xff0c;不得转载。


转载于:https://www.cnblogs.com/blfshiye/p/4656762.html


推荐阅读
  • 本文介绍了iOS开发中检测和解决内存泄漏的方法,包括静态分析、使用instruments检查内存泄漏以及代码测试等。同时还介绍了最能挣钱的行业,包括互联网行业、娱乐行业、教育行业、智能行业和老年服务行业,并提供了选行业的技巧。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • 开发笔记:GD库的基本信息,图像的旋转水印缩略图验证码,以及图像类的封装
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了GD库的基本信息,图像的旋转水印缩略图验证码,以及图像类的封装相关的知识,希望对你有一定的参考价值。GD ... [详细]
author-avatar
别拿明天会好做借口
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有