ThinkPHP简单的验证码实现

写一个最简单的TP验证码。

  • 写Controller

首先在Controller/IndexController.class.php(简称Index)文件中编辑:

 <?php
namespace Home\Controller;
use Think\Controller;
use Think\Verify;//这个类一定记得引用
class IndexController extends Controller {
public function index(){
$this->redirect('login');//重定向至login方法
} /*验证码*/
public function verify(){
$verify=new Verify();//新建一个验证码
$verify->entry();//输出验证码
} /*登陆*/
public function login(){
$this->display();//调用对应模板中的login.html
} /*登陆验证*/
public function login_do(){
$code=I('code');
$verify=new Verify();
if($verify->check($code)){
$this->success("验证成功");
}else{
$this->error("验证码错误");
}
}
}
  • 写html

接下来要去新建一个表单,用于显示验证码并提供一个输入框,输入验证。

如果表单先不新建,现在就去看验证码的效果也是可以的。在浏览器访问:

http://localhost:8088/TP/Home/Index/verif就可以了。

上面操作是在Controller文件夹里面的index控制器进行的。我们去同级文件夹View里面新建一个文件夹叫做index进入index新建login.html

该html文件的命名与控制器文件中的login方法一直,在方法调用

 $this->display();//调用对应模板中的login.html

  即可显示login.html

文件中添加如下表单。

  <form action="__URL__/login_do" method="post">
<input type="text" placeholder="请输入验证码" name="code" required>
<img src="{:U('verify')}" alt="" onclick="this.src='{:U('verify')}?'+Math.random()" title="看不清换一张">
<button>登陆</button>
</form>

  

  • 访问测试

访问http://localhost:8088/TP/Home/Index/login即可看到如下效果。

这个验证码是默认的,以上编写显示过程也是相对比较简单的。

  • 验证码图形自定义

我们接下来可以在此基础之上自定义一下。

修改控制器文件:

     /*验证码*/
public function verify(){
$config=array(
'expire'=> 60, //验证码的有效期(秒)
'useImgBg'=>false , //是否使用背景图片 默认为false
'fontSize'=>35 , //验证码字体大小(像素) 默认为25
'useCurve'=>true , //是否使用混淆曲线 默认为true
'useNoise'=>true , //是否添加杂点 默认为true
//'imageW'=>100 , //验证码宽度 设置为0为自动计算
//'imageH'=>30 , //验证码高度 设置为0为自动计算
'length'=>4 , //验证码位数
//'fontttf'=> , //指定验证码字体 默认为随机获取
//'useZh'=> , //是否使用中文验证码
//'bg'=> , //验证码背景颜色 rgb数组设置,例如 array(243, 251, 254)
//'seKey'=> , //验证码的加密密钥
//'codeSet'=> , //验证码字符集合 3.2.1 新增
//'zhSet'=> , //验证码字符集合(中文) 3.2.1 新增
); $verify=new Verify($config);//新建一个验证码
$verify->entry();//输出验证码
}

这样则可以自定义验证码。

ThinkPHP简单的验证码实现的更多相关文章

  1. 在IIS下部署Thinkphp项目,验证码不能显示的解决办法

    由于公司租用的是虚拟空间,而且用的是IIS服务器,所以部署PHP的时候就出现很多问题:比如昨天就碰到这个问题:在IIS下部署Thinkphp项目,验证码不能显示 这是生成验证码的方法: // 制作专门 ...

  2. 学习笔记:利用GDI+生成简单的验证码图片

    学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...

  3. python 简单图像识别--验证码

    python  简单图像识别--验证码 记录下,准备工作安装过程很是麻烦. 首先库:pytesseract,image,tesseract,PIL windows安装PIL,直接exe进行安装更方便( ...

  4. Flask学习之旅--用 Python + Flask 制作一个简单的验证码系统

    一.写在前面 现在无论大大小小的网站,基本上都会使用验证码,登录的时候要验证,下载的时候要验证,而使用的验证码也从那些简简单单的字符图形验证码“进化”成了需要进行图文识别的验证码.需要拖动滑块的滑动验 ...

  5. Python 常用模块系列学习(1)--random模块常用function总结--简单应用--验证码生成

    random模块--random是一个生成器 首先: import random    #导入模块 print (help(random))    #打印random模块帮助信息 常用function ...

  6. python简单处理验证码,三分钟,不能再多了

    序言 大家好鸭, 又是我小熊猫啦 我们在做采集数据的时候,过快或者访问频繁,或者一访问就给弹出验证码,然后就蚌珠了~今天就给大家来一个简单处理验证码的方法 环境模块 Python和pycharm如果还 ...

  7. ThinkPHP框架之验证码

    Think\Verify类可以支持验证码的生成和验证功能. 下面是最简单的方式生成验证码: $Verify = new \Think\Verify(); $Verify->entry(); 上面 ...

  8. ThinkPhp框架:验证码功能

    Think\Verify类可以支持验证码的生成和验证功能. 为了显示这个验证码功能,第一要有控制器,再就是有方法,然后是显示的页面. 一.最简单的方式生成验证码 (1)我们还是继续在那个控制器编写方法 ...

  9. ThinkPHP中处理验证码的问题

    Think\Verify类可以支持验证码的生成和验证功能. 生成验证码的最简单的代码如下: public function verify(){        $Verify = new \Think\ ...

随机推荐

  1. Android 实现Json数据解析,并进行应用!

    从网站上获取数据然后再客户端进行解析是常见的数据交互.下面是常用的一些接口网址: webservice工厂接口 http://www.36wu.com 快递查询接口http://webservice. ...

  2. Cracking the Coding Interview:: 寻找有环链表的环路起始节点

    给定一个有环链表,实现一个算法返回环路的开头节点. 这个问题是由经典面试题-检测链表是否存在环路演变而来.这个问题也是编程之美的判断两个链表是否相交的扩展问题. 首先回顾一下编程之美的问题. 由于如果 ...

  3. ubuntu 开发环境配置及安装 nodejs

    ubuntu 开发环境配置及安装 nodejs 1 安装nodejs $ sudo apt-get install build-essential $ sudo apt-get install gcc ...

  4. JSP连接access数据库

    一个用jsp连接Access数据库的代码. 要正确的使用这段代码,你需要首先在Access数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数 ...

  5. C#之面向对象的特性

                类是一种抽象的数据类型,但是其抽象的程度有可能会不同,而对象就是一个类的实例,例如,将花设计为一个类,天堂鸟和矢车菊就可以各为一个对象,从这里我们可以看出来,天堂鸟和矢车菊 ...

  6. Java集合之Hashtable

    和HashMap一样,Hashtable也是一个散列表,存储的内容也是键值对key-value映射.它继承了Dictionary,并实现了Map.Cloneable.io.Serializable接口 ...

  7. Hadoop家族

    现在Hadoop家族产品,已经达到20个了之多. 有必要对自己的知识做一个整理了,把产品和技术都串起来.不仅能加深印象,更可以对以后的技术方向,技术选型做好基础准备. 本文为"Hadoop家 ...

  8. URL 多线程下载

    该资源来源于李刚老师的疯狂JAVA讲义 InutStream openStream():打开与此URL链接,并返回一个用于读取该URL资源的InputStream. 提供的openStream()可以 ...

  9. Xcode出现may cause a leak的解决

    比如如下代码: -(void)performSelector:(SEL)selector onNode:(CCNode *)node withObject:(id)object recursive:( ...

  10. HashMap原理解析

    1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端. 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大.但数组的二分查找时间复杂度小,为O(1 ...