您的位置:首页 > 编程语言 > PHP开发

TP验证码使用小提示(已加入使用中文验证码的注意事项)

2008-05-13 10:22 495 查看
学过或用过TP的人都知道它可以方便生成验证码,可能大家用的最多的是数字验证码,其实,TP有好几种验证码可以供大家使用,为了更加清楚,我们不妨看一下Lib/ORG/Util/Image.class.php这个文件,我们常用的生成验证码的方法源自这个类哦!

对于中文验证码的使用示例,大家需要注意两个方面
1.对common/functions.php文件的function rand_string($len=6,$type='',$addChars='')函数进行修改,主要是加入验证码字符串,和确定串长,
修改的起始位置是1014行:
修改示例:


1. $chars='测试一下中文验证码还在完善';
2. $len=mb_strlen($chars,'utf-8');
3. // 中文随机字
4. for($i=0;$i<$len;$i++){
5. $str.= msubstr($chars, floor(mt_rand(0,mb_strlen($chars,'utf-8')-1)),1);
6. }

2.放一个simhei.ttf字段文件到Lib/ORG/Util/下面,也就是Image.class.php文件所在的文件夹
3.清除Temp下的文件

经过以上的修改,你就可以使用中文验证码了

下面我们以示例说说验证码的使用:
模板文件index.html:

1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2. <html xmlns="http://www.w3.org/1999/xhtml">
3. <head>
4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5. <title>TP验证码使用小技巧</title>
6. </head>
7. <body>
8. <p>验证码示例一:</p>
9. <p>显示效果:</p>
10. <p><img src="__URL__/mode1" onclick='this.src="__URL__/mode1"' alt='若看不清点击即可更换验证码'>
11. <p>使用方法:</p>
12. <p>Image::buildImageVerify();</p>
13. <hr>
14. <p>验证码示例二:</p>
15. <p>显示效果:</p>
16. <p><img src="__URL__/mode2" onclick='this.src="__URL__/mode2"' alt='若看不清点击即可更换验证码'>
17. <p>使用方法:</p>
18. <p>Image::buildImageVerify(6,0,'jpeg',60,22);</p>
19. <hr>
20. <p>验证码示例三:</p>
21. <p>显示效果:</p>
22. <p><img src="__URL__/mode3" onclick='this.src="__URL__/mode3"' alt='若看不清点击即可更换验证码'>
23. <p>使用方法:</p>
24. <p>Image::showAdvVerify();</p>
25. <hr>
26. <p>验证码示例四:</p>
27. <p>显示效果:</p>
28. <p><img src="__URL__/mode4" onclick='this.src="__URL__/mode4"' alt='若看不清点击即可更换验证码'>
29. <p>使用方法:</p>
30. <p>Image::GBVerify();</p>
31. <hr>
32. 其实TP还可以生成其它的图片例如条形码:
33.

34. <p>示例五:</p>
35. <p>显示效果:</p>
36. <p><img src="__URL__/mode5" onclick='this.src="__URL__/mode5"' alt='若看不清点击即可更换验证码'>
37. <p>使用方法:</p>
38. <p>Image::UPCA('78654315970');</p>
39. <hr>
40. 以下是该示例的代码:
41.

42. <php>highlight_file(LIB_PATH.'Action/IndexAction.class.php');</php>
43. <p> </p>
44. </body>
45. </html>

ACTION文件:IndexAction.class.php



1. <?php
2. class IndexAction extends Action{
3. public function index(){
4. $this->display();
5. }
6. /**
7. *buildImageVerify()函数原型:
8. *static function buildImageVerify($length=4,$mode=1,$type='png',$'verify')
9. *参数说明:
10. *$length:验证码长度
11. *$mode:验证码模式,取值:0~4
12. *$type:图片文件格式
13. *$width:宽度
14. *$height:长度
15. *$verifyName:存储验证码字符的SESSION的名字
16. */
17. //示例一
18. public function mode1(){
19. import('ORG.Util.Image');
20. Image::buildImageVerify();
21. }
22. //示例二
23. public function mode2(){
24. import('ORG.Util.Image');
25. Image::buildImageVerify(6,0,'jpeg',60,22);
26. }
27. /**
28. *showAdvVerify()函数原型:
29. *static function showAdvVerify($type='png',$>
30. *参数说明:
31. *$type:图片文件格式
32. *$width:宽度
33. *$height:长度
34. *注意:使用该验证码时,存储验证码字符的SESSION的名字为:verifyCode,这一块似乎优化成可以自己设置SESSION的名字更好
35. */
36. //示例三
37. public function mode3(){
38. import('ORG.Util.Image');
39. Image::showAdvVerify();
40. }
41. /**
42. *buildImageVerify()函数原型:
43. *static function GBVerify($length=4,$type='png',$'simhei.ttf',$verifyName='verify')
44. *参数说明:
45. *$length:验证码长度
46. *$type:图片文件格式
47. *$width:宽度
48. *$height:长度
49. *$fontface:字体名,字体文件要放到项目的根目录
50. *$verifyName:存储验证码字符的SESSION的名字
51. *注意:您还要修改commonfunctions.php的function rand_string($len=6,$type='',$addChars='')
52. *该函数在1014行
53. */
54. //示例四
55. public function mode4(){
56. import('ORG.Util.Image');
57. Image::GBVerify();
58. }
59. /**
60. *UPCA()函数原型:
61. *static function UPCA($code,$type='png',$lw=2,$hi=100)
62. *参数说明:
63. *$code:条形码 注意:11位数字
64. *$type:图片文件格式
65. *$lw:宽度
66. *$hi:长度
67. */
68. //示例五
69. public function mode5(){
70. import('ORG.Util.Image');
71. Image::UPCA('78654315970');
72. }
73. }
74. ?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: