tp框架之验证码

控制器

function yzm()
    {
        /*$config =    array(
        ‘fontSize‘    =>    30,    // 验证码字体大小
        ‘length‘      =>    4,     // 验证码位数
        ‘useImgBg‘=>true,
        ‘useZh‘=>true,
        ‘fontttf‘=>‘SIMYOU.TTF‘,
        ‘zhSet‘=>‘啊是的分个好就看了‘

        );*/
        //$v=new     \Think\Verify($config);  //随机自己定义的验证码

        $v=new     \Think\Verify();  //使用默认验证码
        $v->entry(1);  //如果你需要在一个页面中生成多个验证码的话,entry方法需要传入可标识的信息,例如:验证码1

    }

    function xianshi()
    {
        if(empty($_POST))
        {
            $this->display();
        }
        else
        {
            $yzm=$_POST["yzm"];    

            $verify = new \Think\Verify();

            var_dump($verify->check($yzm,1));  //1代表第几个验证码
        }
    }

显示页面

<!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" />
<title>无标题文档</title>
<load href="__PUBLIC__/JS/jquery-1.11.2.min.js" />
</head>

<body>
<form action="__ACTION__" method="post">
<img id="y" src="__CONTROLLER__/yzm" />
<input type="text" name="yzm" />
<input type="submit" value="提交" />
</form>
</body>
<script type="text/javascript">
$(document).ready(function(e) {
    $("#y").click(function(){

        var sj=Math.random();  //获取一个随机数

        $(this).attr("src","__CONTROLLER__/yzm/c"+sj+"");  //针对ie浏览器,每次都传一个不同的数过去,才能重新加载,别的浏览器不需要

        })
});
</script>
</html>

Think\Verify类可以支持验证码的生成和验证功能。

生成验证码

下面是最简单的方式生成验证码:

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

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

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

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

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

验证码2:

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

验证码参数

可以对生成的验证码设置相关的参数,以达到不同的显示效果。这些参数包括:

参数 描述
expire 验证码的有效期(秒)
useImgBg 是否使用背景图片 默认为false
fontSize 验证码字体大小(像素) 默认为25
useCurve 是否使用混淆曲线 默认为true
useNoise 是否添加杂点 默认为true
imageW 验证码宽度 设置为0为自动计算
imageH 验证码高度 设置为0为自动计算
length 验证码位数
fontttf 指定验证码字体 默认为随机获取
useZh 是否使用中文验证码
bg 验证码背景颜色 rgb数组设置,例如 array(243, 251, 254)
seKey 验证码的加密密钥
codeSet 验证码字符集合 3.2.1 新增
zhSet 验证码字符集合(中文) 3.2.1 新增

参数设置使用两种方式。

实例化传入参数:

  1. $config = array(
  2. ‘fontSize‘ => 30, // 验证码字体大小
  3. ‘length‘ => 3, // 验证码位数
  4. ‘useNoise‘ => false, // 关闭验证码杂点
  5. );
  6. $Verify = new \Think\Verify($config);
  7. $Verify->entry();

或者采用动态设置的方式,如:

  1. $Verify = new \Think\Verify();
  2. $Verify->fontSize = 30;
  3. $Verify->length = 3;
  4. $Verify->useNoise = false;
  5. $Verify->entry();

验证码字体

默认情况下,验证码的字体是随机使用 ThinkPHP/Library/Think/Verify/ttfs/目录下面的字体文件,我们可以指定验证码的字体,例如:

  1. $Verify = new \Think\Verify();
  2. // 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf
  3. $Verify->fontttf = ‘5.ttf‘;
  4. $Verify->entry();

背景图片

支持验证码背景图片功能,可以如下设置:

  1. $Verify = new \Think\Verify();
  2. // 开启验证码背景图片功能 随机使用 ThinkPHP/Library/Think/Verify/bgs 目录下面的图片
  3. $Verify->useImgBg = true;
  4. $Verify->entry();

中文验证码

如果要使用中文验证码,可以设置:

  1. $Verify = new \Think\Verify();
  2. // 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf
  3. $Verify->useZh = true;
  4. $Verify->entry();

如果无法正常显示,请确认你的 ThinkPHP/Library/Think/Verify/zhttfs/ 目录下面存在中文字体文件。

指定验证码字符

3.2.1版本以上,我们可以指定验证码的字符,通过重新设置codeSet参数即可,例如:

  1. $Verify = new \Think\Verify();
  2. // 设置验证码字符为纯数字
  3. $Verify->codeSet = ‘0123456789‘;
  4. $Verify->entry();

如果是中文验证码,可以使用zhSet参数设置,例如:

  1. $Verify = new \Think\Verify();
  2. $Verify->useZh = true;
  3. // 设置验证码字符
  4. $Verify->zhSet = ‘们以我到他会作时要动国产的一是工就年阶义发成部民可出能方进在了不和有大这‘;
  5. $Verify->entry();

验证码检测

可以用Think\Verify类的check方法检测验证码的输入是否正确,例如,下面是封装的一个验证码检测的函数:

  1. // 检测输入的验证码是否正确,$code为用户输入的验证码字符串
  2. function check_verify($code, $id = ‘‘){
  3. $verify = new \Think\Verify();
  4. return $verify->check($code, $id);
  5. }
时间: 2024-10-12 04:18:45

tp框架之验证码的相关文章

tp框架实现验证码

今天来看一个小插件. tp框架是怎么实现验证码的. 又到了我们千篇一律的时候了,首先呢,先做一个用来显示的html界面名为:zhuce.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

6月19 使用tp框架生成验证码及文件上传

ThinkPHP中自带能生成验证码的类:ThinkPHP/Library/Think/Verify.class.php 默认情况下,验证码的字体是随机使用 ThinkPHP/Library/Think/Verify/ttfs/目录下面的字体文件,我们可以指定验证码的字体 汉字的验证码:ThinkPHP/Library/Think/Verify/zhttfs/添加中文的字体格式 更改字体:ttf格式 关于验证码的一些知识点: 1.例题:通过验证码实现用户的登录,并利用jquery实现点击图片验证码

PHP--TP框架----生成验证码的方式

TP框架----生成验证码的方式 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> <

如何运用tp框架编写网站的无刷新登入

为了方便,我们可以重新建立一个名为LoginController.class.php的控制器;其内容如下: <?php namespace Admin\Controller;//设置命名空间 use Think\Controller; class LoginController extends Controller{ public function index(){ //这是登入成功后跳转的界面,需要模板渲染,然后调用 $this->display();//渲染模板 } public func

TP框架---thinkphp基础知识

php框架    发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳定的运行阶段 项目停止运行(旧项目的人员已经全部离职,新人开发新项目)   二.问题: 1. 多人开发项目,分工不合理,(html   php   mysql) 2. 代码风格不一样,后期维护十分困难 3. 项目生命周期十分短,项目生命没有延续性,造成资源浪费.人员浪费

tp框架知识集锦(3.2)

php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳定的运行阶段 项目停止运行(旧项目的人员已经全部离职,新人开发新项目)   二.问题: 1. 多人开发项目,分工不合理,(html   php   mysql) 2. 代码风格不一样,后期维护十分困难 3. 项目生命周期十分短,项目生命没有延续性,造成资源浪费.人员浪费 4. 项目不

tp框架基础知识

作者:黄力军 index.php入口文件:作用,所有tp框架里的内容要想访问文件.都要走index.php文件他是整个程序的入口 Application代表应用程序的目录   所有写的应用程序放这里 Public公用目录   里面放公用的东西比如css js ThinkPHPtp框架核心文件夹.Thinkphp核心文件夹里分为如下 ThinkPHP.php是tp框架的核心类 Common里面存放tp框架里面的函数方法 Conf文件夹里面要注意*代表配置文件特别是convention 文件tp框架

ThinkPHP框架之验证码

TP框架中Think\Verify类可以支持验证码的生成和验证功能.具体文件:ThinkPHP/Library/Think/Verify.class.php 生成验证码 下面是最简单的方式生成验证码: $Verify = new \Think\Verify(); $Verify->entry(); 上面的代码会生成默认的验证码图片并输出,显示如下: 生成的验证码信息会保存到session中,包含的数据有: array('verify_code'=>'当前验证码的值','verify_time'

tp框架点击刷新验证

html 中 <img class="cimg" src="__URL__/verify?id=2>" width="50" height="22" onclick=""http://blog.51cto.com/viewpic.php?refimg=" + this.src='__URL__/verify/'+Math.random()" /></td>