thinkphp 验证码的使用

时间:2022-09-12 03:58:47
在thinkphp中使用验证码很容易,只要调用thinkphp现有的方法就可以。当然,php的GD库肯定是要开的(就是在php.ini中要加载gd模块)。
thinkphp 3.2

 -----------------------------------------------------------------------------

首先,在写Controllers文件,如:IndexController.class.php.

HomeController 是继承 Controller 的父级控制器 也可以直接继承 Controller

在Home文件加下:Home\Common\function.php  添加 一个检测验证码的封装函数

<?php
    function check_verify($code, $id="") {
      
       $verify = new \Think\Verify();         return $verify->check($code, $id);
    
    } ?> <?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends HomeController {
//显示验证码
public function index() {
$this->display();
} // 生成验证码
public function verify() {
$arr = array(
'imageW' => , //验证码显示的款地
'imageH' => , //验证码显示的高度
'fontSize'=>, //验证码字体大小
'length' => , //验证码位数
'useNoise'=>false, //关闭验证码杂点 true 开启
'useCurve'=>false, //关闭验证码曲线 true 开启
'bg' => array(,,) //设置背景色
);
$verify = new \Think\Verify($arr);
$verify->entry();
}
//校验验证码
public function verifyCheck() {
//防止页面乱码
header('Content-type:text/html;charset=utf-8');
$verify = I("post.verify");
$result = check_verify($verify);
if ($result) {
echo "验证通过!";
exit;
} else {
echo "验证码错误!";
exit;
}
} }
?>
在对应的模板文件:Views\Index\目录下新建文件index.html,内容如下:
<script type='text/javascript'>
//重载验证码
function freshVerify() {
document.getElementById('verifyImg').src='{:U("Index/verify")}?'+Math.random();
}
</script>
<form method='post' action='{:U("Index/verifyCheck")}'>
<input type='text' name='verify' required='required' />
<img style='cursor:pointer' title='刷新验证码' src='{:U("Index/verify")}' id='verifyImg' onClick='freshVerify()'/>
<button type='submit'>确定</button>
</form>