6验证码
未知
2021-07-04 11:55:56
0

安装

首先使用Composer安装think-captcha扩展包:

composer require topthink/think-captcha
复制

验证码库需要开启Session才能生效。

使用

扩展包内定义了一些常见用法方便使用,可以满足大部分常用场景,以下示例说明。

在模版内添加验证码的显示代码

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

或者

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

上面两种的最终效果是一样的,根据需要调用即可。

然后使用框架的内置验证功能(具体可以参考验证章节),添加captcha验证规则即可

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

如果没有使用内置验证功能,则可以调研内置的函数手动验证

if(!captcha_check($captcha)){
 // 验证失败
};
复制

如果是多应用模式下,你需要自己注册一个验证码的路由。

Route::get('captcha/[:config]','\\think\\captcha\\CaptchaController@index');
复制

配置

Captcha类带有默认的配置参数,支持自定义配置。这些参数包括:

参数 描述 默认
codeSet 验证码字符集合
expire 验证码过期时间(s) 1800
math 使用算术验证码 false
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

直接在应用的config目录下面的captcha.php文件中进行设置即可,例如下面的配置参数用于输出4位数字验证码。

return [
    'length'    =>  4,
    'codeSet'   =>  '0123456789',
];
复制

自定义验证码

如果需要自己独立生成验证码,可以调用Captcha类(think\captcha\facade\Captcha)操作。

在控制器中使用下面的代码进行验证码生成:

<?php
namespace app\index\controller;

use think\captcha\facade\Captcha;

class Index 
{
	public function verify()
    {
        return Captcha::create();    
    }
}
复制

然后访问下面的地址就可以显示验证码:

http://serverName/index/index/verify
复制

输出效果如图

通常可以给验证码地址注册路由

Route::get('verify','index/verify');
复制

在模板中就可以使用下面的代码显示验证码图片

<div><img src="{:url('index/verify')}" alt="captcha" /></div>
复制

可以用Captcha类的check方法检测验证码的输入是否正确,

// 检测输入的验证码是否正确,$value为用户输入的验证码字符串
$captcha = new Captcha();
if( !$captcha->check($value))
{
	// 验证失败
}
复制

或者直接调用封装的一个验证码检测的函数captcha_check

// 检测输入的验证码是否正确,$value为用户输入的验证码字符串
if( !captcha_check($value ))
{
	// 验证失败
}
复制

如果你需要生成多个不同设置的验证码,可以使用下面的配置方式:

<?php
return [
    'verify'=>[
        'codeSet'=>'1234567890'
    ]
];
复制

使用指定的配置生成验证码:

return Captcha::create('verify');
复制

默认情况下,验证码的字体是随机使用扩展包内 think-captcha/assets/ttfs目录下面的字体文件,我们可以指定验证码的字体,例如:
修改或新建配置文件如下:

<?php
return [
    'verify'=>[
        'fontttf'=>'1.ttf'
    ]
];
复制
return Captcha::create('verify');
复制

默认的验证码字符已经剔除了易混淆的1l0o等字符

上一篇:6think助手工具库

下一篇:6swoole

相关内容

如何使用MySQL变量进行...
本文详细介绍了MySQL中用户定义变量、系统变量和局部变量的使用方...
2024-11-20 18:46:45
拼多多购物优惠券,优惠力度...
拼多多购物优惠券种类多,优惠力度大,可省下不少钱。可通过平台活动、...
2024-11-20 12:00:43
PHP与SQLSRV连接数...
PHP与SQLSRV连接SQL Server数据库教程,介绍安装配...
2024-11-20 11:23:44
PHP与SQLSRV连接M...
本文介绍了使用PHP和SQLSRV扩展连接MySQL数据库的实例,...
2024-11-20 11:00:46
PHP SQLSRV数据库...
本文介绍了使用PHP SQLSRV扩展进行数据库操作的示例,包括连...
2024-11-20 10:23:47
PHP中SQLSRV连接数...
PHP中SQLSRV连接数据库安全性分析,需注意密码保护、身份验证...
2024-11-20 09:46:38

热门资讯

tp6开发规范 命名规范 请理解并尽量遵循以下命名规范,可以减少在开发过程中出现不必要的错误。 ThinkPHP6....
6高级查询 快捷查询 快捷查询方式是 一种多字段相同查询条件 的简化写法,可以进一步简化查询条件的写法,在多个字...
tp6多应用提示控制器不存在:... 第一个情况是没有使用composer安装扩展。 如果要使用多应用模式, 你需要win+r,cmd指针...
6配置 配置目录 单应用模式 对于单应用模式来说,配置文件和目录很简单,根目录下的 config 目录下面就...
6异常处理 和PHP默认的异常处理不同,ThinkPHP抛出的不是单纯的错误信息,而是一个人性化的错误页面。 异...
6swoole 本篇内容主要讲述了最新的 think-swoole 扩展的使用。目前仅支持Linux环境或者MacO...
6助手函数 助手函数 系统为一些常用的操作方法封装了助手函数,便于使用,包含如下: 助手函数 描述 abort ...
6查询表达式 查询表达式 查询表达式支持大部分的SQL查询语法,也是 ThinkPHP 查询语言的精髓,查询表达式...
6路由参数 路由参数 路由分组及规则定义支持指定路由参数,这些参数主要完成路由匹配检测以及后续行为。 路由参数可...
6查询 模型查询和数据库查询方法的区别主要在于,模型中的查询的数据在获取的时候会经过获取器的处理,以及更加对...