class PublicAction extends Action{
Public function verify(){
import('ORG.Util.Image');
Image::buildImageVerify();
}
}
定义后,我们可以在任何需要验证码的模块中调用Public模块的verify方法来显示验证码,需要做的仅仅是在需要的模板中添加如下调用代码:<img src='!-APP-!/Public/verify/' />
这样,我们访问该页面后就能看到默认的验证码图像显示,如下所示:buildImageVerify 生成图像验证码 | ||
---|---|---|
用法 | buildImageVerify($length,$mode,$type,$width,$height,$verifyName) | |
参数 | length | 验证码的长度,默认为4位数 |
model | 验证字符串的类型,默认为数字,其他支持类型有0 字母 1 数字 2 大写字母 3 小写字母 4中文 5混合 | |
type | 验证码的图片类型,默认为png | |
width | 验证码的宽度,默认会自动根据验证码长度自动计算 | |
height | 验证码的高度,默认为22 | |
verifyName | 验证码的SESSION记录名称,默认为verify |
if(session('verify') != md5($_POST['verify'])) {
$this->error('验证码错误!');
}
建议使用session方法来获取SESSION值,因为验证码生成方法里面也是采用的session方法保存的,可以避免受session前缀的影响而出错。这里的verify名称取决于你的验证码的verifyName参数的值。Public function verify(){
import("ORG.Util.Image");
Image::GBVerify();
}
显示效果如下:GBVerify生成中文验证码 | |
---|---|
用法 | GBVerify ($length,$type,$width,$height,$fontface,$verifyName) |
参数 |
length:验证码的长度,默认为4位数 type:验证码的图片类型,默认为png width:验证码的宽度,默认会自动根据验证码长度自动计算 height:验证码的高度,默认为50 fontface:使用的字体文件,使用完整文件名或者放到图像类所在的目录下面,默认使用的字体文件是simhei.ttf(该文件可以从window的Fonts目录下面找到 verifyName:验证码的SESSION记录名称,默认为verify |
<script language="JavaScript">
function fleshVerify(){
//重载验证码
var time = new Date().getTime();
document.getElementById('verifyImg').src= '!-APP-!/Public/verify/'+time;
}
</script>
<img id="verifyImg" src='!-APP-!/Public/verify/' onclick="fleshVerify()" />
当然,熟悉Jquery的开发人员,可以用Jquery代码来简化验证码刷新的js方法,这个就不再多说了。