首頁 >php框架 >ThinkPHP >ThinkPHP6下簡化think-captcha驗證碼,提昇文字辨識度

ThinkPHP6下簡化think-captcha驗證碼,提昇文字辨識度

幸运切糕
幸运切糕原創
2020-05-01 20:59:513453瀏覽

眾所周知,驗證碼能防止惡意登入註冊,它由服務端生成,發送給客戶端,並最終以圖像格式顯示。複雜的驗證碼能提升網站的安全性,但過於複雜的驗證碼也會使得文字的肉眼辨識變得異常困難,使用者體驗大大降低。

本文以最新thinkphp6.0think-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>

預設情況下渲染的驗證碼如下:

ThinkPHP6下簡化think-captcha驗證碼,提昇文字辨識度

可能有的小夥伴覺得這很清晰呀,但是對於年齡較大的人來說還是比較困難,另外透過修改驗證碼文件,也可以提升自己的動手能力、增長知識。

最佳化think-captcha驗證碼

找到config\captcha.php設定文件,修改以下部分:

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

#修改後刷新看看,是不是更簡潔了?

ThinkPHP6下簡化think-captcha驗證碼,提昇文字辨識度

這樣其實已經比較可以了,正常情況下不建議再修改框架,但既以學習為目的,那我們就再深入優化下。

開啟vendor\topthink\think-captcha\src\Captcha.php

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

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

最後看看效果,是不是已經很滿意了

ThinkPHP6下簡化think-captcha驗證碼,提昇文字辨識度

本文透過簡單的修改設定檔、去掉傾斜度的方式簡化了驗證碼的顯示,提高了文字辨識度,小夥伴兒們多動手,印象才會更深刻喲!

以上是ThinkPHP6下簡化think-captcha驗證碼,提昇文字辨識度的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn