学习内容:
https://www.kancloud.cn/tpshop/thinkphp5/231658
完全开发手册:
https://www.kancloud.cn/manual/thinkphp5/154295
教程中的代码:https://github.com/phpervip/tp5a
安装类库
在使用验证码之前,必须使用Composer来安装验证码类库,在命令行下面切换到你的应用根目录下面,执行:
composer require topthink/think-captcha
采用Composer包的方式扩展框架及类库,方法:
1.安装composer: https://pkg.phpcomposer.com/#how-to-install-composer
2.https://pkg.phpcomposer.com/#how-to-use-packagist-mirror
或者直接拷贝demo下的vendor到工程根目录
验证码显示
创建一个Captcha控制器类,添加验证码显示方法:
<?php
namespace app\index\controller;
class Captcha extends \think\Controller
{
// 验证码表单
public function index()
{
return $this->fetch();
}
}
创建模板文件(application/index/view/captcha/index.html)
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>验证码示例</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<h2>验证码示例</h2>
<FORM method="post" class="form" action="{:url('check')}">
输入验证码:<INPUT type="text" class="text" name="code"><br/>
<div>{:captcha_img()}</div>
<INPUT type="submit" class="btn" value=" 提交 ">
</FORM>
<div class="copyright">
<a title="官方网站" href="http://www.thinkphp.cn">ThinkPHP</a>
<span>V5</span>
<span>{ 十年磨一剑-为API开发设计的高性能框架 }</span>
</div>
</body>
</html>
<script>
$("#captcha_image").click(function(){
$(this).find('img').attr('src','/captcha?r='+Math.random());
});
</script>
验证码检测
下面来进行验证码检测,在控制器中添加验证方法check,代码如下:
'captcha' => [
// 字体大小
'fontSize' => 35,
// 验证码长度(位数)
'length' => 4,
],
参数 | 描述 |
---|---|
seKey | 验证码加密Key |
codeSet | 验证码字符集合 |
expire | 验证码过期时间(秒) |
useZh | 使用中文验证码 |
useImgBg | 使用背景图片 |
fontSize | 字体大小(px) |
useCurve | 是否添加混淆曲线 |
useNoise | 是否添加杂点 |
imageH | 验证码图片高度 |
imageW | 验证码图片宽度 |
length | 验证码长度 |
fontttf | 验证码字体 |
bg | 验证码图片背景色 |
reset | 验证成功后是否重置 |