ThinkPHP简单的验证码实现
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简单的验证码实现的更多相关文章
- 在IIS下部署Thinkphp项目,验证码不能显示的解决办法
由于公司租用的是虚拟空间,而且用的是IIS服务器,所以部署PHP的时候就出现很多问题:比如昨天就碰到这个问题:在IIS下部署Thinkphp项目,验证码不能显示 这是生成验证码的方法: // 制作专门 ...
- 学习笔记:利用GDI+生成简单的验证码图片
学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...
- python 简单图像识别--验证码
python 简单图像识别--验证码 记录下,准备工作安装过程很是麻烦. 首先库:pytesseract,image,tesseract,PIL windows安装PIL,直接exe进行安装更方便( ...
- Flask学习之旅--用 Python + Flask 制作一个简单的验证码系统
一.写在前面 现在无论大大小小的网站,基本上都会使用验证码,登录的时候要验证,下载的时候要验证,而使用的验证码也从那些简简单单的字符图形验证码“进化”成了需要进行图文识别的验证码.需要拖动滑块的滑动验 ...
- Python 常用模块系列学习(1)--random模块常用function总结--简单应用--验证码生成
random模块--random是一个生成器 首先: import random #导入模块 print (help(random)) #打印random模块帮助信息 常用function ...
- python简单处理验证码,三分钟,不能再多了
序言 大家好鸭, 又是我小熊猫啦 我们在做采集数据的时候,过快或者访问频繁,或者一访问就给弹出验证码,然后就蚌珠了~今天就给大家来一个简单处理验证码的方法 环境模块 Python和pycharm如果还 ...
- ThinkPHP框架之验证码
Think\Verify类可以支持验证码的生成和验证功能. 下面是最简单的方式生成验证码: $Verify = new \Think\Verify(); $Verify->entry(); 上面 ...
- ThinkPhp框架:验证码功能
Think\Verify类可以支持验证码的生成和验证功能. 为了显示这个验证码功能,第一要有控制器,再就是有方法,然后是显示的页面. 一.最简单的方式生成验证码 (1)我们还是继续在那个控制器编写方法 ...
- ThinkPHP中处理验证码的问题
Think\Verify类可以支持验证码的生成和验证功能. 生成验证码的最简单的代码如下: public function verify(){ $Verify = new \Think\ ...
随机推荐
- 《java入门第一季》之根据小案例体会泛型
泛型在哪些地方使用呢? * 看API,如果类,接口,抽象类后面跟的有<E>就说要使用泛型.一般来说就是在集合中使用. 下面根据案例,加深体会泛型的作用. 案例一: import java. ...
- EBS条形码打印
Oracle 提供两种方式实现 128 码的编码 第一种方式是使用 Reports Builder 实现对 128 码编码, 在 Metalink 305090.1[1] 有 比较详尽的描述,其中 ...
- Android项目-高考作文-抽象BaseAdapter
1, 在使用baseAdapter的时候,总是有需要重复的代码如: @Override public int getCount() { return list.size(); } @Override ...
- Chapter 2 User Authentication, Authorization, and Security(3):保护服务器避免暴力攻击
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38756693,专题目录:http://blog.csdn.net/dba_huangzj ...
- xml之DOM方式解析,DOM4J工具解析原理
DOM解析原理: DOM解析原理:xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document的对象树,通过Document对象,得到树上的节点对象,通过节点对象访问(操作)到x ...
- python“# -*- coding: UTF-8 -*-”
python跑一趟红 python脚本文件中,python编译器是使用ascii码来解释脚本内容.如果.py源文件中包含中文,会报错(注释也报错).所以文件开头加上"# -*- coding ...
- 《java入门第一季》之面向对象(修饰符的概念和总结)
还是由于eclipde等ide的强大功能,会自动提示你修饰符是否可行.所以对修饰符的作用了解即可: 修饰符: 权限修饰符:private,默认的,protected,public ...
- C语言中的位运算和逻辑运算
这篇文章来自:http://blog.csdn.net/qp120291570/article/details/8708286 位运算 C语言中的位运算包括与(&),或(|),亦或(^),非( ...
- Oracle Global Finanicals Technical Reference(二)
Skip Headers Oracle Global Finanicals Oracle Global Financials Technical Reference Manual Release 11 ...
- SharePoint 自定义列表页面定制续—[保存模板后不能正常使用]
背景:SharePoint列表的四个基本页样式不是特别的好,所以很多情况都需要重新定制,然而经过定制后,又发生了新的问题,就是存成模板,再建新的列表的时候,定制的页面不能正常显示了. 1. 定制后的页 ...