php5 验证码,验证码 · ThinkPHP5.1完全开发手册 · 看云

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

~~~

composer require topthink/think-captcha=2.0.*

~~~

## 验证码的简单用法

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

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

~~~

{:captcha_img()}

~~~

或者

~~~

captcha

~~~

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

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

~~~

$this->validate($data,[

'captcha|验证码'=>'require|captcha'

]);

~~~

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

~~~php

if(!captcha_check($captcha)){

// 验证失败

};

~~~

## 验证码的自定义用法

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

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

~~~

namespace app\index\controller;

use think\captcha\Captcha;

class Index

{

public function verify()

{

$captcha = new Captcha();

return $captcha->entry();

}

}

~~~

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

~~~

http://serverName/index/index/verify

~~~

输出效果如图

![](https://box.kancloud.cn/dcbf30b119dc2bb7ec6f41d943b5646c_250x62.png)

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

~~~

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

~~~

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

~~~html

captcha

~~~

如果你需要在一个页面中生成多个验证码的话,`entry`方法需要传入可标识的信息(数字或者字符串),例如:

~~~

$captcha = new Captcha();

return $captcha->entry(1);

~~~

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

~~~

// 检测输入的验证码是否正确,$value为用户输入的验证码字符串

$captcha = new Captcha();

if( !$captcha->check($value))

{

// 验证失败

}

~~~

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

~~~php

// 检测输入的验证码是否正确,$value为用户输入的验证码字符串

if( !captcha_check($value ))

{

// 验证失败

}

~~~

如果你在页面上同时生成了多个验证码,则可以使用

~~~php

// 检测输入的验证码是否正确,$value为用户输入的验证码字符串,$id为验证码标识

if( !captcha_check($value, $id ))

{

// 验证失败

}

~~~

## 验证码的配置参数

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

| 参数 | 描述 | 默认 |

| --- | --- | --- |

| 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 |

>[danger] 如果使用扩展内置的方法进行验证码显示,直接在应用的`config`目录下面的`captcha.php`文件(没有则首先创建)中进行设置即可,以下设置方式仅限于独立调用Captcha类的时候使用。

实例化传入参数:

~~~

$config = [

// 验证码字体大小

'fontSize' => 30,

// 验证码位数

'length' => 3,

// 关闭验证码杂点

'useNoise' => false,

];

$captcha = new Captcha($config);

return $captcha->entry();

~~~

或者采用动态设置的方式,如:

~~~

$captcha = new Captcha();

$captcha->fontSize = 30;

$captcha->length = 3;

$captcha->useNoise = false;

return $captcha->entry();

~~~

### 验证码字体

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

~~~

$captcha = new Captcha();

$captcha->fontttf = '5.ttf';

return $captcha->entry();

~~~

### 背景图片

支持验证码背景图片功能,可以如下设置:

~~~

$captcha = new Captcha();

// 开启验证码背景图片功能 随机使用扩展包内`think-captcha/assets/bgs`目录下面的图片

$captcha->useImgBg = true;

return $captcha->entry();

~~~

### 中文验证码

如果要使用中文验证码,可以设置:

~~~

$captcha = new Captcha();

// 使用中文验证码(字体使用扩展包内`think-captcha/assets/zhttfs`字体文件)

$captcha->useZh = true;

return $captcha->entry();

~~~

### 指定验证码字符

指定验证码的字符,可以设置:

~~~

$captcha = new Captcha();

// 设置验证码字符为纯数字

$captcha->codeSet = '0123456789';

return $captcha->entry();

~~~

如果是中文验证码,可以使用`zhSet`参数设置,例如:

~~~

$captcha = new Captcha();

$captcha->useZh = true;

// 设置验证码字符

$captcha->zhSet = '们以我到他会作时要动国产的一是工就年阶义发成部民可出能方进在了不和有大这';

return $captcha->entry();

~~~

>[info] 默认的验证码字符已经剔除了易混淆的`1l0o`等字符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
thinkphp5.1完全开发手册.pdf是一本全面介绍了ThinkPHP 5.1框架开发手册ThinkPHP是一款相当流行的PHP开源框架,它具有良好的扩展性和易用性,适用于各种规模的Web应用开发。 这本开发手册详细介绍了ThinkPHP 5.1框架的使用方法和各种功能。首先,手册介绍了如何安装和配置ThinkPHP框架,包括服务器环境配置和数据库连接设置。然后,手册详细讲解了ThinkPHP框架的MVC架构,包括控制器、模型和视图的使用方法和关系。 接下来,手册针对常用的功能模块进行了深入的讲解。比如,数据库操作模块介绍了如何使用ThinkPHP的ORM功能进行数据库的增删改查操作。表单验证模块介绍了如何使用ThinkPHP的验证器进行数据验证。文件上传、缓存、日志记录等功能由浅入深地讲解了使用方法。 此外,手册还介绍了ThinkPHP框架的路由、中间件、事件和插件等高级功能,以及如何进行单元测试和异常处理。 这本手册的优点是系统完整地介绍了ThinkPHP 5.1框架的各种功能和用法,对于初学者来说非常友好。而对于有一定经验的开发者来说,手册也提供了足够的细节和实例,帮助他们了解和应用框架更高级的特性。 总而言之,thinkphp5.1完全开发手册.pdf是一本全面详细的ThinkPHP 5.1框架开发指南,既适合初学者入门,又适合有经验的开发者查漏补缺,是学习和使用ThinkPHP框架的重要参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值