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

環(huán)境
- 框架版本: ThinkPHP5.1.2
- 運行環(huán)境: CentOS7.2、phpStudy2017、Nginx
♜ 功能開發(fā)
1).引入第三方擴展包
進(jìn)行 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>

3). captcha 擴展包代碼優(yōu)化
如果按照上述操作,顯示的驗證碼圖片并不能點擊刷新,可自己根據(jù)需求進(jìn)行刷新功能設(shè)計;或者,建議進(jìn)行下面的代碼優(yōu)化:
function captcha_img($id = "")
{
$js_src = "this.src='".captcha_src()."'";
return '<img src="' . captcha_src($id) . '" title="點擊更新驗證碼" alt="點擊更新驗證碼" οnclick="'.$js_src.'" />';
//return ' . ')';
}
打開 ..\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() 方法,進(jìn)行驗證。
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,可以進(jìn)行樣式的自定義. - 如果前端
{:captcha_img()}有傳值 id,那么后臺captcha_check()驗證也需要相應(yīng)的 id 參數(shù)區(qū)分。 - 驗證結(jié)果,普遍使用
ajax請求,以滿足用戶順暢的體驗.
到此這篇關(guān)于ThinkPHP5.1驗證碼功能實現(xiàn)的示例代碼的文章就介紹到這了,更多相關(guān)ThinkPHP5.1驗證碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- ThinkPHP5&5.1實現(xiàn)驗證碼的生成、使用及點擊刷新功能示例
- thinkphp5.1驗證碼及驗證碼驗證功能的實現(xiàn)詳解
- tp5(thinkPHP5框架)captcha驗證碼配置及驗證操作示例
- thinkPHP5.0框架驗證碼調(diào)用及點擊圖片刷新簡單實現(xiàn)方法
- thinkPHP框架實現(xiàn)的短信接口驗證碼功能示例
- thinkPHP實現(xiàn)的驗證碼登錄功能示例
- 詳解ThinkPHP3.2.3驗證碼顯示、刷新、校驗
- thinkPHP中驗證碼的簡單實現(xiàn)方法
- thinkphp自帶驗證碼全面解析
- Thinkphp極驗滑動驗證碼實現(xiàn)步驟解析
相關(guān)文章
Laravel 5框架學(xué)習(xí)之Eloquent 關(guān)系
Eloquent是Laravel的原始ActiveRecord是實現(xiàn)的,建立在Laravel的Fluent Query Builder之上的,所以Eloquent類和Fluent類是一樣的,能實現(xiàn)復(fù)雜的SQL語句和非常直觀表達(dá)出的表與表之間的關(guān)系2015-04-04
Laravel框架運行出錯提示RuntimeException No application encryption ke
這篇文章主要介紹了Laravel框架運行出錯提示RuntimeException No application encryption key has been specified.解決方法,涉及Laravel框架相關(guān)配置、設(shè)置與運行操作技巧,需要的朋友可以參考下2019-04-04
Laravel 5框架學(xué)習(xí)之向視圖傳送數(shù)據(jù)(進(jìn)階篇)
上篇文章我們介紹了Laravel5框架中如何向視圖中傳送數(shù)據(jù),今天我們來研究下如何向視圖中傳送array,非常的詳細(xì),推薦給有需要的小伙伴參考下。2015-04-04

