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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
 
<body>
<img src="__CONTROLLER__/YZM"><!--src=""指向的是操作方法。"__CONTROLLER__/YZM"当前控制器下-->
 
</body>
</html>

1、


【1】把验证码的类造一个对象出来。

【2】调用对象里的方法,方法是entry()----可以生成验证码。

 验证码的类----Verify.class.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
namespace  Home\Controller; //这个文件的命名空间
use  Think\Controller; //use使用哪一个而命名空进。找Controller父类的文件
 
//http://localhost/ThinkPHP/index.php/Home/Diyi/Test
 
 
class  DiyiController  extends  Controller
  {
              
       //验证码
       function  YZM()  //YZM--操作方法
       {
           //第一步,造验证码的对象
           $v  new  \Think\Verify(); //通过命名空间来找到类。在初始命名空间下的Think,下面有Verify.class.php
           //调用对象里的方法
           $v ->entry(); //调用这个entry()方法就可生成验证码
       }
       
       function  xianshi()
       {
          //这个方法在执行是,把页面打印出来
          $this ->display();
       }
       
       
      
  }                  
                  
    
显示的结果:

2、

这个页面需要生成多个验证码-----如何进行区分??


entry()方法里可以写参数,写参数代表的是给验证码进行区分,区分是第几个

3、




例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
namespace  Home\Controller; //这个文件的命名空间
use  Think\Controller; //use使用哪一个而命名空进。找Controller父类的文件
 
//http://localhost/ThinkPHP/index.php/Home/Diyi/Test
 
 
class  DiyiController  extends  Controller
  {
       //验证码
       function  YZM()  //YZM--操作方法
       {
           $config  =
           array (   
                 'fontSize'     =>   30, 
                 'length'       =>    3,
                     
                             );
           $v  =   new  \Think\Verify( $config );
           $v  ->entry();
           
           
           //第一步,造验证码的对象
           $v  new  \Think\Verify(); //通过命名空间来找到类。在初始命名空间下的Think,下面有Verify.class.php
           //调用对象里的方法
           $v ->entry(); //调用这个entry()方法就可生成验证码
       }
       
       function  xianshi()
       {
          //这个方法在执行是,把页面打印出来
          $this ->display();
       }
       
       
      
  }                  
                  
    


4、验证码的字体


ttfs要有相应的文件:


【2】                          【1】

【1】英文的字体文件

  【2】中文的字体文件


  这个属性,可以设置要使用哪一个字体 

 5、验证码的背景图片


 useImgBg 默认是false,要改成true。改完之后,随机使用 ThinkPHP/Library/Think/Verify/bgs 目录下面的图片。


例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
namespace  Home\Controller; //这个文件的命名空间
use  Think\Controller; //use使用哪一个而命名空进。找Controller父类的文件
 
//http://localhost/ThinkPHP/index.php/Home/Diyi/Test
 
 
class  DiyiController  extends  Controller
  {
       //验证码
       function  YZM()  //YZM--操作方法
       {
           $config  =
           array (   
                 'fontSize'     =>   30, 
                 'length'       =>    3,
 
             'useImgBg'  => true,
                     
                             );
           $v  =   new  \Think\Verify( $config );
           $v  ->entry();
           
           
           //第一步,造验证码的对象
           $v  new  \Think\Verify(); //通过命名空间来找到类。在初始命名空间下的Think,下面有Verify.class.php
           //调用对象里的方法
           $v ->entry(); //调用这个entry()方法就可生成验证码
       }
       
       function  xianshi()
       {
          //这个方法在执行是,把页面打印出来
          $this ->display();
       }
       
       
      
  }                  
                  
    

  换验证码的背景图片

显示的结果:

第一次,刷新:


第二次,刷新:

6、中文验证码


找字体文件:


必须是ttf格式

把上面的文件复制到


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
namespace  Home\Controller; //这个文件的命名空间
use  Think\Controller; //use使用哪一个而命名空进。找Controller父类的文件
 
//http://localhost/ThinkPHP/index.php/Home/Diyi/Test
 
 
class  DiyiController  extends  Controller
  {
          
       //验证码
       function  YZM()  //YZM--操作方法
       {
           $config  =
           array (   
                 'fontSize'     =>   30, 
                 'length'       =>    3,
             //'useImgBg' => true,
  
             'useZh'  => true,
             'fontttf'  =>  'simkai.ttf' ,
                     
                             );
           $v  =   new  \Think\Verify( $config );
           $v  ->entry();
           
           
           //第一步,造验证码的对象
           $v  new  \Think\Verify(); //通过命名空间来找到类。在初始命名空间下的Think,下面有Verify.class.php
           //调用对象里的方法
           $v ->entry(); //调用这个entry()方法就可生成验证码
       }
       
       function  xianshi()
       {
          //这个方法在执行是,把页面打印出来
          $this ->display();
       }
       
       
      
  }                  
                  
    

fontttf=''表示:所示用哪一个字体。   fontttf =‘要写字体的文件名’

显示的 结果:


如果只设置'useZh' => true,找不到字体,因为默认使用的是英文的

猜你喜欢

转载自blog.csdn.net/pksport/article/details/78248123