一.生成验证码

$Verify = new \Think\Verify();
$Verify->entry();

生成的验证码信息会保存到session中,里面包含数据有:

array('verify_code'=>'当前验证码的值','verify_time'=>'验证码生成的时间戳')

如果需要在一个页面中生成多个验证码的话,entry方法中需要传入可标识的信息,例如

// 验证码1
$Verify = new \Think\Verify();
$Verify->entry(1);
// 验证码2
$Verify = new \Think\Verify();
$Verify->entry(2);

验证码参数

可以对生成的验证码设置相关的参数,

//设置验证码参数
$config = array( 'fontSize'=>30, //验证码字体大小
'length'=>3, //验证码位数
'useNoise'=>false,//关闭验证码杂点
);
//实例化验证码类,并传入参数
$verify = new Verify($config);
//生成验证码
$verify->entry();

上面,采用的配置变量方式来修改验证码参数,也可以使用动态设置方法:

//实例化验证码类,并传入参数
$verify = new Verify(); //验证码字体大小
$verify->fontSize = 30; //验证码位数 $verify->length = 3; //关闭验证码杂点
$verify->useNoise = false; //设置验证码字体
$verify->fontttf = '5.ttf'; //设置背景图片功能,随机使用
$verify->useImgBg = true; //取消曲线混淆
$verify->useCurve = false; //设置验证码的高
$verify->imageH = 100; //设置验证码的宽
$verify->imageW = 100; //设置验证码的长度
$verify->length = 3; //设置验证码加密密钥
$verify->seKey = 'YCKU.COM'; //设置验证码背景颜色
$verify->bg = array(200,200,200);
//生成验证码
$verify->entry();

如果想让验证码显示中文字符,那么需要几个步骤:

1.在 Think/zhttfs 文件夹下引入中文字体文件,比如加粗雅黑 msyhbd.ttf;

2.设置字体文件;

//设置验证码字体

$verify->fontttf = 'msyhbd.ttf';

3.设置中文验证码

//设置中文验证码

$verify->useZh = true;

PS:由于中文字符较为庞大,你也可以限定指定的中文字符。

//限定中文字符

$verify->zhSet = 'xxx是个好人';

//设置纯数字

$verify->codeSet='0123456789';

二、生成验证码例子:

YzController.class.php

<?php
namespace Yz\Controller;
use Think\Controller;
class YzController extends Controller
{
public function xianshi()
{
$yz = $_POST["uid"];
if(empty($yz))//如果传过来的$_POST值为空,显示页面
{
$this->show();
}
else//如果不为空,显示验证码
{
$verify = new \Think\Verify();
//如果验证成功,返回true,失败false
if($verify->check($yz/*, $id*/))//$id为验证码的标识,在$Verify->entry();中没有定义标识,不写
{
echo "注册成功!";
}
}
}
public function yzm()//生成验证码方法
{
$Verify = new \Think\Verify();
$Verify->fontSize = 30;//验证码字体大小
$Verify->length = 5;//验证码字体的长度
$Verify->fontttf = '5.ttf';//指定用那种字体
$Verify->length = 5;
$Verify->entry();
}
public function _empty()//空方法,防止报错
{
$this->display('Empty/empty');
}
}

xianshi.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script>
<title>无标题文档</title>
</head> <body>
<form action="__ACTION__" method="post">
<div><input type="text" id="yz" name="uid" />
<img id="img" src="__CONTROLLER__/yzm" />
</div>
<div><input type="submit" value="验证" id="btn" /></div>
</form>
<script type="text/javascript">
//点击图片,定义src,再走一遍方法,BUG是个别浏览器不兼容,可生成随机数,当参数传值
$("#img").click(function(){
var a = Math.ceil(Math.random()*100);//生成随机数,Math.random()是生成随机数,Math.ceil()是向上取整,Math.ceil(Math.random())都是取整到1,可以*100来生成1-100的随机整数
alert(a);
$("#img").attr("src","__CONTROLLER__/yzm/suijishu/"+a+"");//个别浏览器如果地址一样,不加载,可以后带参数(生成随机数)
})
</script>
</body>
</html>

Thinkphp 验证码的更多相关文章

  1. ThinkPHP验证码类

    //ThinkPHP验证码类使用$config = array( 'fontSize' => 30, // 验证码字体大小 'length' => 3, // 验证码位数 'useNois ...

  2. thinkphp验证码(总结之后,效率非常好)

    thinkphp验证码(总结之后,效率非常好) 一.总结 1.总结:总结之后,效率非常好,复习的时候也才方便,也能深入到细处,非常方便建立熟悉感和突破使用困境 2.验证码使用中文集或者繁体集设置:这个 ...

  3. thinkphp验证码不现实多半是bom惹的祸

    thinkphp 验证码不现实多半是bom惹的祸,下面是驱除bom的代码: 链接:https://pan.baidu.com/s/1v5gm7n0L7TGyejCmQrMh2g 提取码:x2p5 免费 ...

  4. ThInkPHP验证码不显示,解决方法汇总

    出现ThInkPHP验证码不显示的情况 官方提示如下:如果无法显示验证码,请检查:① PHP是否已经安装GD库支持:② 输出之前是否有任何的输出(尤其是UTF8的BOM头信息输出):(打开验证码文件为 ...

  5. thinkphp验证码

    thinkphp自带验证码 前端页面: <div style="position:absolute;z-index:3;top:160px;left:180px;"> ...

  6. Thinkphp验证码异步验证第二次及以后验证,验证错误----待解决

    今天进行差错时遇到的问题.别人的回答----链接(http://www.thinkphp.cn/topic/28968.html) 3.2.3版本里的check方法会在第一次验证正确后清除SESSIO ...

  7. thinkphp验证码使用

    在thinkphp中使用验证码很容易,只要调用thinkphp现有的方法就可以.当然,php的GD库肯定是要开的(就是在php.ini中要加载gd模块). thinkphp 3.1 --------- ...

  8. thinkphp 验证码的使用

    在thinkphp中使用验证码很容易,只要调用thinkphp现有的方法就可以.当然,php的GD库肯定是要开的(就是在php.ini中要加载gd模块). thinkphp 3.2 --------- ...

  9. Thinkphp 验证码、文件上传

    一.验证码 验证码参数 例题:登录时验证下验证码 LoginController.class.php <?php namespace Home\Controller; use Think\Con ...

  10. thinkphp验证码的使用

    thinkphp不仅封装了验证规则 还封装了验证码 文件的位置是ThinkPHP\Library\Think\Verify.class.php 下面简单的说一下如何使用 我们现在控制器里新建一个方法 ...

随机推荐

  1. java19

    1:异常(理解) (1)程序出现的不正常的情况. (2)异常的体系 Throwable |--Error 严重问题,我们不处理. |--Exception |--RuntimeException 运行 ...

  2. java23

    1:多线程(理解)    (1)多线程:一个应用程序有多条执行路径        进程:正在执行的应用程序        线程:进程的执行单元,执行路径        单线程:一个应用程序只有一条执行 ...

  3. Angular2 入门

    1. 说明 该文档为Angular2的入门文档,可以根据该文档的内如做出一个“helloworld”类型的Angualr2入门程序,通过该文档可以初步了解Angular2的相关知识以及开发流程,同时搭 ...

  4. CodeViz代码可视化

    安装可以参见,http://blogimg.chinaunix.net/blog/upfile2/091119203927.pdf 结合pdf教程,这里说下注意事项: 1 ) 必须先安装GRAPHVI ...

  5. 水平时间轴 html + css

    比较粗糙,效果如图 这个是写微信页面时写的,pc 也是一样的效果 代码如下: <div class="time_line_box"> <div class=&qu ...

  6. 让EF飞一会儿:如何用Entity Framework 6 连接Sqlite数据库

    获取Sqlite 1.可以用NuGet程序包来获取,它也会自动下载EF6 2.在Sqlite官网上下载对应的版本:http://system.data.sqlite.org/index.html/do ...

  7. .NET LINQ概述

    LINQ      语言集成查询 (LINQ) 是 Visual Studio 2008 中引入的一组功能,它在对象领域和数据领域之间架起了一座桥梁.可为 C# 和 Visual Basic 语言语法 ...

  8. 各种浏览器的Hack写法(chrome firefox ie等)

    Hack是针对不同的浏览器去写不同的CSS样式,从而让各浏览器能达到一致的渲染效果,那么针对不同的浏览器写不同的CSS CODE的过程,就叫CSS HACK,同时也叫写CSS Hack. 然后将Hac ...

  9. 转:asp.net TreeView CheckChanged 事件浅谈

    http://blog.csdn.net/xiage/article/details/5128755 在开发中经常可以碰到类似的问题: 想通过一个树父节点的TreeNodeCheckChanged 事 ...

  10. 算法系列:FFT 001

    转载自http://blog.csdn.net/orbit/article/details/17210461 2012年9月的时候,一个南京的大学生从电视台播放的一段记者采访360总裁周鸿祎的视频中破 ...