Thinkphp框架验证码的路径目录:ThinkPHP -> Library -> Think -> Verify.class.php ,只要在控制器中实例化这个类就能实现验证码的功能了。
效果图:
简单代码:
$Verify = new ThinkVerify();
$Verify->entry();
验证码类会把生成的验证码写入session中,通过session('verify_code')获取值,进行比对就能进行验证码的作用了。
验证码支持的参数:
可以对生成的验证码设置相关的参数,以达到不同的显示效果。 这些参数包括:
参数 | 描述 |
---|---|
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 新增 |
把参数放入实例化后的对象中对应的变量中就能改变验证码的一些效果了。
生成验证码
/这段代码需要写在一个单独的控制器中的方法,方便调用
$Verify = new ThinkVerify();
//对指定的变量参数赋值,调整验证码效果
$Verify->fontSize = 30;
$Verify->length = 3;
$Verify->useNoise = false;
//图片输出
$Verify->entry();
调用验证码
<!--这里的图片路径就是tp框架中的控制器方法路径-->
<!--点击图片获取图片路径并拼接新的参数,切换图片-->
<img onclick="this.src=this.src+'&'+Math.random()" style="cursor: pointer;"
src="index.php?m=home&c=login&a=checkcode"/>
验证验证码
//可以把这个写在框架公共函数库function.php中,并传入参数比较,$code为用户的输入验证码
function check_verify($code, $id = ''){
$verify = new \Think\Verify();
return $verify->check($code, $id);
}
官方文档地址:http://document.thinkphp.cn/manual_3_2.html#verify