日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

ThinkPHP6项目基操(12.实战部分 验证码)

發布時間:2025/3/15 php 99 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ThinkPHP6项目基操(12.实战部分 验证码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

驗證碼

  • 一、安裝驗證碼
  • 二、模板中使用
  • 三、修改驗證碼配置
  • 四、自定義驗證碼
    • 1. 創建
    • 2. 配置
    • 3. 使用
  • 五、驗證

TP6 有內置驗證碼插件,只需簡單安裝和配置即可使用,而且驗證碼的驗證也非常方便,下面開始表演。

一、安裝驗證碼

composer require topthink/think-captcha

二、模板中使用

將原來靜態頁面的驗證碼圖片替換為{:captcha_img()},這個會自動生成驗證碼圖片。

<div style="margin-left: 10px;">{:captcha_img()} </div>

生成的html代碼為:

<img src="/captcha.html?0.12285642498823002" alt="captcha" onclick="this.src=&quot;/captcha.html?&quot;+Math.random();">

從生成的代碼可以看出,點擊圖片可以切換圖片。生成的圖片:

如果圖片沒有出來,檢查下路徑是否正確,路由是否正確。瀏覽器直接訪問http://tp6.com/captcha也會顯示二維碼,如果沒有顯示就考慮路由的正確性。

三、修改驗證碼配置

在config目錄新建captcha.php:

<?phpreturn ['length' => 4,'codeSet' => '0123456789','useCurve' => false ];

具體可配置的項:

參數描述默認
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

四、自定義驗證碼

1. 創建

除了使用默認的方式{:captcha_img()},還可以通過think\captcha\facade\Captcha類自行創建驗證碼。

<?phpnamespace app\admin\controller; use think\captcha\facade\Captcha;class Verify {public function index(){return Captcha::create();} }

通過這個控制器也能正常返回驗證碼:

2. 配置

自定義驗證碼也可以配置,可以在config/captcha.php文件里定義一個配置,然后在創建的時候傳入配置key即可:
captcha.php:

<?phpreturn ['length' => 4,'codeSet' => '0123456789','useCurve' => false,// 配置名稱可以隨意取'my_set' => ['length' => 3,'codeSet' => 'abcdefg'] ];

修改Verify控制器:

return Captcha::create('my_set');

秀一下:

3. 使用

<img src="{:url('verify/index')}" class="layadmin-user-login-codeimg">

想要點擊切換驗證碼,可以添加個onclick事件,自行仿照原生的做法。

五、驗證

框架的內置驗證功能:

$this->validate($data,['captcha|驗證碼'=>'require|captcha' ]);

如果沒有使用內置驗證功能,則可以調研內置的函數手動驗證

if(!captcha_check($captcha)){// 驗證失敗 };

這里需要注意的是TP6默認沒有開啟Session,需要自行開啟,而這里的驗證碼驗證需要使用到session功能,所以修改app目錄下的中間件文件middleware.php,將\think\middleware\SessionInit::class的注釋放開即可。


??重磅推薦:免費商用電商系統

😏想白嫖整個電商系統用來商用?
🤑想有自己的商城實現財富自由?
🤓想學習最佳實踐提升自己技術?

快來進入🚀 傳送門 🚀,開源免費、完整示例帶你快速入門,輕松二開,走上人生巔峰!👨?🎓

總結

以上是生活随笔為你收集整理的ThinkPHP6项目基操(12.实战部分 验证码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。