您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關ThinkPHP5.1驗證碼功能怎么弄,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
? 背景
ThinkPHP5.1
已經出現很久了,最近有所接觸,下面介紹一下常用的第三方驗證碼功能的使用。
環境
框架版本: ThinkPHP5.1.2
運行環境: CentOS7.2、phpStudy2017、Nginx
? 功能開發
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) . '" title="點擊更新驗證碼" alt="點擊更新驗證碼" οnclick="'.$js_src.'" />'; //return '![](' . captcha_src($id) . ')'; }
打開 ..\vendor\topthink\think-captcha\src\helper.php
文件,替換上面的 captcha_img()
方法代碼.
此時的驗證碼圖片即可實現點擊 實時刷新
功能.
【注意:2020-02-26】
最近發現,直接在CSDN上復制上面的代碼,“onclick” 粘貼后不是正常的代碼,注意 “o”字母,建議有問題時可手打一下即可!
4). 后臺代碼驗證
根據前端請求而來的 verifyCode
數據,調用 helper.php
中的 captcha_check()
方法,進行驗證。
if(request()->isPost()){ $data = input('post.'); if(!captcha_check($data['verifyCode'])) { // 校驗失敗 $this->error('驗證碼不正確'); } }
? 提示
官方文檔—— 【ThinkPHP5.1 驗證碼指導】
建議閱讀 ..\vendor\topthink\think-captcha\src\helper.php
文件,及 Captcha.php
,可以進行樣式的自定義.
如果前端 {:captcha_img()}
有傳值 id,那么后臺 captcha_check()
驗證也需要相應的 id 參數區分。
驗證結果,普遍使用 ajax
請求,以滿足用戶順暢的體驗.
關于“ThinkPHP5.1驗證碼功能怎么弄”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。