众所周知,验证码能防止恶意登录注册,它由服务端生成,发送给客户端,并最终以图像格式显示。复杂的验证码能提升网站的安全性,但过于复杂的验证码也会使得文字的肉眼识别变得异常困难,用户体验大大降低。
本文以最新thinkphp6.0
的think-captcha
扩展为修改对象,来详细讲解如何简化验证码的显示,提高文字辨识度,让老年人也能看得清!
think-captcha验证码
控制器测试代码:
<?php namespace app\controller; use app\BaseController; use think\facade\View; 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验证码
找到config\captcha.php
配置文件,修改如下部分:
//验证码位数 'length' => 4, //简洁的4字符验证码 // 验证码字符集合 'codeSet' => '0123456789', //这里我去掉英文了,只留下数字部分 // 是否使用混淆曲线 'useCurve' => false, //是否添加杂点 'useNoise' => false, // 验证码字体 不设置则随机 'fontttf' => '4.ttf', //经测试,该字体很顺眼
修改后刷新看看,是不是更简洁了?
这样其实已经比较可以了,正常情况下不建议再修改框架,但既以学习为目的,那我们就再深入优化下。
打开vendor\topthink\think-captcha\src\Captcha.php
修改第277行,去掉字体斜移度
imagettftext($this->im, $this->fontSize, 0, $x, $y, $this->color, $fontttf, $char);
最后看看效果,是不是已经很满意了
本文通过简单的修改配置文件、去掉倾斜度的方式简化了验证码的显示,提高了文字辨识度,小伙伴儿们多多动手,印象才会更深刻哟!
以上是ThinkPHP6下简化think-captcha验证码,提高文字辨识度的详细内容。更多信息请关注PHP中文网其他相关文章!

thinkphp是国产框架。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。

本篇文章给大家带来了关于thinkphp的相关知识,其中主要介绍了关于使用think-queue来实现普通队列和延迟队列的相关内容,think-queue是thinkphp官方提供的一个消息队列服务,下面一起来看一下,希望对大家有帮助。

thinkphp基于的mvc分别是指:1、m是model的缩写,表示模型,用于数据处理;2、v是view的缩写,表示视图,由View类和模板文件组成;3、c是controller的缩写,表示控制器,用于逻辑处理。mvc设计模式是一种编程思想,是一种将应用程序的逻辑层和表现层进行分离的方法。

本篇文章给大家带来了关于thinkphp的相关知识,其中主要介绍了使用jwt认证的问题,下面一起来看一下,希望对大家有帮助。

thinkphp查询库是否存在的方法:1、打开相应的tp文件;2、通过“ $isTable=db()->query('SHOW TABLES LIKE '."'".$data['table_name']."'");if($isTable){...}else{...}”方式验证表是否存在即可。

thinkphp扩展有:1、think-migration,是一种数据库迁移工具;2、think-orm,是一种ORM类库扩展;3、think-oracle,是一种Oracle驱动扩展;4、think-mongo,一种MongoDb扩展;5、think-soar,一种SQL语句优化扩展;6、porter,一种数据库管理工具;7、tp-jwt-auth,一个jwt身份验证扩展包。

本篇文章给大家带来了关于ThinkPHP的相关知识,其中主要整理了使用think-queue实现redis消息队列的相关问题,下面一起来看一下,希望对大家有帮助。

在thinkphp3.2中,可以利用define关闭调试模式,该标签用于变量和常量的定义,将入口文件中定义调试模式设为FALSE即可,语法为“define('APP_DEBUG', false);”;开启调试模式将参数值设置为true即可。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Atom编辑器mac版下载
最流行的的开源编辑器

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境