您现在的位置是:首页> 网站开发> ThinkPHP

TP5验证码实现教程

  • 3202人已阅读
  • 时间:2018-10-16 08:58:22
  • 分类:ThinkPHP
  • 作者:祥哥

TP作为国内的知名框架,功能还是很全面的.

验证码功能当然也不在话下.下面让祥哥带大家看看怎么使用.

前题是我们必须要安装验证码扩展包.如果下载的完整版是带这个扩展包的.

  1. 使用Composer安装think-captcha扩展包:

composer require topthink/think-captcha

  2.在模板中显示的方法

<div>{:captcha_img()}</div>

<div><img src="{:captcha_src()}" alt="captcha" /></div>

上面的效果是一样的.引入完验证码有显示了.我们加个点击事件,让点击验证码自动更换功能.

<img style="float:left; cursor:pointer;" src="{:captcha_src()}" alt="captcha" onclick="this.src='{:captcha_src()}?'+Math.random()" />

验证码引用,我们可以对验证码进行配置.

参数描述默认
codeSet验证码字符集合
expire验证码过期时间(s)1800
useZh使用中文验证码false
zhSet中文验证码字符串
useImgBg使用背景图片false
fontSize验证码字体大小(px)25
useCurve是否画混淆曲线true
useNoise是否添加杂点true
imageH验证码图片高度,设置为0为自动计算0
imageW验证码图片宽度,设置为0为自动计算0
length验证码位数5
fontttf验证码字体,不设置是随机获取
bg背景颜色[243, 251, 254]
reset验证成功后是否重置true

根据自己的需求配置,添加在项目的配置文件中例如这是中文的

    //验证码配置
    'captcha'  => [
    //使用中文验证码
    'useZh' => true,
    // 字体大小
    'fontSize' => 16,
    // 验证码长度(位数)
    'length'   => 3,
    //验证码字符集合
    'zhSet' => '我人有的和主产不为这工要在地一上是中国同经以发了民多从朋折笔方立水炎之式林大寺五止昌吕男册忆子妇双比',
    //验证码高
    'imageH'   => 35,
    //验证码宽
    'imageW'   => 130,
    //是否添加杂点
    'useNoise' => true,
    ],

这是英文的

    //验证码配置
    'captcha'  => [
    // 字体大小
    'fontSize' => 18,
    // 验证码长度(位数)
    'length'   => 4,
    //验证码字符集合
    'codeSet'  => '234567890qwertyuiopasdfghjklnmbvcxz',
    //验证码高
    'imageH'   => 35,
    //验证码宽
    'imageW'   => 130,
    //是否添加杂点
    'useNoise' => true,
    ],

最后就是验证码验证了

//验证码验证
$captcha = new \think\captcha\Captcha();
if (!$captcha->check($data['code'])) {
    return 3; die; //验证码错误
}

这是手动验证也可以用验证规则实现

$this->validate($data,[
    'captcha|验证码'=>'require|captcha'
]);

动手试一下吧.

Top