视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
ThinkPHP6下简化think-captcha验证码,提高文字辨识度
2020-11-03 13:37:40 责编:小采
文档
 众所周知,验证码能防止恶意登录注册,它由服务端生成,发送给客户端,并最终以图像格式显示。复杂的验证码能提升网站的安全性,但过于复杂的验证码也会使得文字的肉眼识别变得异常困难,用户体验大大降低。

本文以最新thinkphp6.0think-captcha扩展为修改对象,来详细讲解如何简化验证码的显示,提高文字辨识度,让老年人也能看得清!

think-captcha验证码

控制器测试代码:

<?php
namespace appcontroller;

use appBaseController;
use thinkfacadeView;

class Index extends BaseController
{
 public function index()
 {
 return View::fetch();
 }
}

视图测试代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
<img src="{:captcha_src()}" alt="">
</body>
</html>

默认情况下渲染的验证码如下:

可能有的小伙伴觉得这很清晰呀,但是对于年龄较大的人来说还是比较困难,另外通过修改验证码文件,也可以提高自己的动手能力、增长知识。

优化think-captcha验证码

找到configcaptcha.php配置文件,修改如下部分:

//验证码位数
'length' => 4, //简洁的4字符验证码
// 验证码字符集合
'codeSet' => '01234567', //这里我去掉英文了,只留下数字部分
// 是否使用混淆曲线
'useCurve' => false,
//是否添加杂点
'useNoise' => false,
// 验证码字体 不设置则随机
'fontttf' => '4.ttf', //经测试,该字体很顺眼

修改后刷新看看,是不是更简洁了?

这样其实已经比较可以了,正常情况下不建议再修改框架,但既以学习为目的,那我们就再深入优化下。

打开vendor opthink hink-captchasrcCaptcha.php

修改第277行,去掉字体斜移度

imagettftext($this->im, $this->fontSize, 0, $x, $y, $this->color, $fontttf, $char);

最后看看效果,是不是已经很满意了

本文通过简单的修改配置文件、去掉倾斜度的方式简化了验证码的显示,提高了文字辨识度,小伙伴儿们多多动手,印象才会更深刻哟!

下载本文
显示全文
专题