溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ThinkPHP5.1驗證碼功能怎么弄

發(fā)布時間:2021-02-04 16:15:06 來源:億速云 閱讀:296 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)ThinkPHP5.1驗證碼功能怎么弄,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

? 背景

ThinkPHP5.1 已經(jīng)出現(xiàn)很久了,最近有所接觸,下面介紹一下常用的第三方驗證碼功能的使用。

ThinkPHP5.1驗證碼功能怎么弄

環(huán)境

  • 框架版本: ThinkPHP5.1.2

  • 運行環(huán)境: CentOS7.2、phpStudy2017、Nginx

? 功能開發(fā)

1).引入第三方擴展包

進行 TP5 的開發(fā),Composer 的使用會成為重要技能,以 windows 為例子,輸入命令:

composer require topthink/think-captcha

完成上述操作,會在以下目錄中出現(xiàn) captcha 的擴展包

..\vendor\topthink\think-captcha

2).前端設(shè)置

在前端頁面需要顯示驗證碼的位置,補充 {: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>

ThinkPHP5.1驗證碼功能怎么弄

3). captcha 擴展包代碼優(yōu)化

如果按照上述操作,顯示的驗證碼圖片并不能點擊刷新,可自己根據(jù)需求進行刷新功能設(shè)計;或者,建議進行下面的代碼優(yōu)化:

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() 方法代碼.

此時的驗證碼圖片即可實現(xiàn)點擊 實時刷新 功能.

【注意:2020-02-26】

最近發(fā)現(xiàn),直接在CSDN上復(fù)制上面的代碼,“onclick” 粘貼后不是正常的代碼,注意 “o”字母,建議有問題時可手打一下即可!

4). 后臺代碼驗證

根據(jù)前端請求而來的 verifyCode 數(shù)據(jù),調(diào)用 helper.php 中的 captcha_check() 方法,進行驗證。

 if(request()->isPost()){
   $data = input('post.');
   if(!captcha_check($data['verifyCode'])) {
    // 校驗失敗
    $this->error('驗證碼不正確');
   }
}

? 提示

官方文檔—— 【ThinkPHP5.1 驗證碼指導(dǎo)】

  • 建議閱讀 ..\vendor\topthink\think-captcha\src\helper.php 文件,及 Captcha.php ,可以進行樣式的自定義.

  • 如果前端 {:captcha_img()} 有傳值 id,那么后臺 captcha_check() 驗證也需要相應(yīng)的 id 參數(shù)區(qū)分。

  • 驗證結(jié)果,普遍使用 ajax 請求,以滿足用戶順暢的體驗.

關(guān)于“ThinkPHP5.1驗證碼功能怎么弄”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI