background image

PHP 教程:基于 Zend 的 Captcha 机制的应用

本文为大家介绍了,基于 Zend 的 Captcha 机制的应用。供大家参考下
如何生成验证码图片?使用 php 的 GD  

? ok,right。其实 Zend 的 Captcha 模块已经封装好

了。这篇文章就说一下如何使用 Zend 的 Captcha 模块。
 
环境安装
首先 Zend 的 Captcha 需要安装 GD。查看有没有安装 GD 需要去 phpinfo()中看是否有 GD 模
块。(注意,有可能出现 php -m 里面的模块有 gd 但 phpInfo()里面的模块没有 gd,这个问
题是说明你的 PHP 和 Apache 没有安装对。具体请去 google 之)
 
生成验证码图片
使用 Zend_Captcha_Image 类
代码如下:
 

$captcha

 = 

new

 Zend_Captcha_Image(); 

$captcha

->setWordLen('4') 

->setHeight('60') 
->setFont(NCHANNEL_FONT_DIR . '/arial.ttf') 
->setImgDir(NCHANNEL_CAPTCHA_DIR) 
->setDotNoiseLevel('5') 
->setLineNoiseLevel('5'); 
 

$id

 = 

$captcha

->generate(); 

 

$code

 = 

$captcha

->getWord(); 

 
1 这里有两个变量需要说一下,

$id

 

 

$code

图片文件名就是

$id

 . ".png"; 这个 id 是一个随机数。

$code

是这个图片中的文字,就是验证码的答案

2 setWordLen 等设置的接口是 Zend_Captcha_Image 暴露给外面的对验证码图片的设置。其
实看函数名也能知道是做什么的了。具体请参考 Zend 的 Api 手册。
3 font 字体文件必须在服务器上有,ImgDir 设置的是图片生成路径
验证验证码图片
好了,生成了验证码图片,现在要验证验证码了。
验证步骤就需要用到 Zend_Session_Namespace 这个 session 存储模块。