ThinkPHP5.0 已經很久了,最近有所接觸,下面介紹一下常用的第三方驗證碼功能的使用。

功能開發 1).引入第三方擴展包 進行 TP5 的開發,Composer 的使用會成為重要技能
以windows為例子,輸入命令:
~~~
composer require topthink/think-captcha
~~~
完成上述操作,會在以下目錄中出現 captcha 的擴展包
~~~
../vendor/topthink/think-captcha
~~~
2).前端設置
在前端頁面需要顯示驗證碼的位置,補充 {:captcha_img()} 即可,個人代碼舉例如下:
~~~
p class="pass-form-item">
<label class="pass-label">驗證碼</label>
<input type="text" name="verifyCode" class="pass-text-input " placeholder="請輸入驗證碼">
<div>{:captcha_img()}</div>
</p>
~~~

3).captcha 擴展包代碼優化 如果按照上述操作,顯示的驗證碼圖片并不能點擊刷新,可自己根據需求進行刷新功能設計;或者,建議進行下面的代碼優化:
~~~
function captcha_img($id = "") {
$js_src = "this.src='".captcha_src()."'";
return '<img src="' . captcha_src($id) . '" alt="點擊更新驗證碼"
onclick="'.$js_src.'" />'; //return ' . ')';
}
~~~
打開 ../vendor/topthink/think-captcha/src/helper.PHP文件,替換上面的 captcha_img() 方法代碼.
此時的驗證碼圖片即可實時刷新.
4).后臺代碼驗證 根據前端請求而來的 verifyCode 數據,調用 helper.PHP 中的 captcha_check() 方法,進行驗證。
~~~
if(request()->isPost()){
$data = input('post.');
if(!captcha_check($data['verifyCode'])) {
// 校驗失敗
$this->error('驗證碼不正確');
} }
~~~
提示 建議閱讀 ../vendor/topthink/think-captcha/src/helper.PHP 文件,及 Captcha.PHP ,可以進行樣式的自定義.
如果前端 {:captcha_img()}有傳值 id,那么后臺 captcha_check() 驗證也需要相應的 id 參數區分。
驗證結果,普遍使用 ajax 請求,以滿足用戶順暢的體驗.
- PHP發表心情投票功能示例(附源碼)
- TP5驗證碼實現
- 談談JSONAPI在PHP中的應用
- Laravel artisan optimize 源碼解讀
- PHP中的閉包和匿名函數
- 65條最常用正則表達式,你要的都在這里了
- PHP 斷點續傳實例詳解
- 從配置文件的角度去了解Yii2
- 高效的PHP郵件發送庫:Swiftmailer
- 對于php-fpm和cgi,還有并發響應的理解
- 詳解 Cookie 紀要
- Cookie詳解
- Cookie格式
- Cookie的創建
- Cookie 基礎知識*
- Cookie的使用
- Cookie的基本操作
- Cookie的域概念
- Session詳解
- session與cookie的區別
- Cookie與Session問答
- php如何解決中文亂碼問題?
- 微信小程序 PHP生成帶參數二維碼
- PHP實現QQ快速登錄
- mysql 隊列 實現并發讀
- php+redis消息隊列實現搶購功能
- js購物車實現思路及代碼(個人感覺不錯)
- PHP curl 抓取AJAX異步內容示例
- PHP curl 并發最佳實踐代碼分享
- php 字符串中是否包含指定字符串的多種方法
- PHP7如何開啟Opcode打造強悍性能詳解
- PHP實現用戶登錄的案例代碼
- yii2多圖上傳組件的使用教程
- PHP數組去重的更快實現方式分析
- 購物車實現的幾種方式優缺點對比
- laravel項目利用twemproxy部署redis集群的完整步驟
- PHP+memcache實現消息隊列案例分享
- PHP CURL CURLOPT參數說明
- php實現可以設置中獎概率的抽獎程序代碼分享
- 基于在生產環境中使用php性能測試工具xhprof的詳解
- 一個PHP并發訪問實例代碼
- php解決搶購秒殺抽獎等大流量并發入庫導致的庫存負數的問題
- PHP設計模式之工廠模式定義與用法詳解