去 https://packagist.org/ 網(wǎng)站搜索驗(yàn)證碼的代碼依賴,關(guān)鍵詞:captcha
地址:https://packagist.org/packages/mews/captcha
PHP版本>=5.4、需要開(kāi)啟GD庫(kù),同時(shí)需要開(kāi)啟fileinfo和mbstring擴(kuò)展
使用Composer進(jìn)行安裝代碼依賴包:
composer require mews/captcha
修改配置文件:config/app.php
1、配置providers數(shù)組信息,添加一行信息:
Mews\Captcha\CaptchaServiceProvider::class,
2、配置別名aliases鍵,添加一個(gè)別名記錄
'Captcha' => Mews\Captcha\Facades\Captcha::class,
如果需要定義自己的配置,則需要使用以下命令生成配置文件(config/captcha.php)
php artisan vendor:publish
輸入剛剛添加的配置信息的序號(hào)生成相應(yīng)配置文件
發(fā)布之后會(huì)在config目錄下找到對(duì)應(yīng)的配置文件:
<?phpreturn [ 'characters' => ['2', '3', '4', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'm', 'n', 'p', 'q', 'r', 't', 'u', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'M', 'N', 'P', 'Q', 'R', 'T', 'U', 'X', 'Y', 'Z'], 'default' => [ 'length' => 4, 'width' => 120, 'height' => 36, 'quality' => 90, 'math' => false, 'expire' => 60, 'encrypt' => false, ], 'math' => [ 'length' => 9, 'width' => 120, 'height' => 36, 'quality' => 90, 'math' => true, ], 'flat' => [ 'length' => 4, 'width' => 160, 'height' => 46, 'quality' => 90, 'lines' => 6, 'bgImage' => false, 'bgColor' => '#ecf2f4', 'fontColors' => ['#2c3e50', '#c0392b', '#16a085', '#c0392b', '#8e44ad', '#303f9f', '#f57c00', '#795548'], 'contrast' => -5, ], 'mini' => [ 'length' => 3, 'width' => 60, 'height' => 32, ], 'inverse' => [ 'length' => 5, 'width' => 120, 'height' => 36, 'quality' => 90, 'sensitive' => true, 'angle' => 12, 'sharpen' => 10, 'blur' => 2, 'invert' => true, 'contrast' => -5, ]];
需要在頁(yè)面上顯示出來(lái)
如果需要自定義配置(如長(zhǎng)度、寬高等),可以修改配置文件config/captcha.php文件。
在表單視圖模板代碼:加上一行:
<p>驗(yàn)證碼:<input type="text" name="captcha"><img src="{{captcha_src()}}" alt=""></p>
captcha_src() 參數(shù)可選,默認(rèn)使用default配置項(xiàng),可以傳入對(duì)應(yīng)的配置項(xiàng)數(shù)組鍵名稱
<p>驗(yàn)證碼:<input type="text" name="captcha"><img src="{{captcha_src('inverse')}}" alt=""></p>
②驗(yàn)證碼驗(yàn)證操作
注意:驗(yàn)證碼有效性驗(yàn)證規(guī)則,手冊(cè)里是沒(méi)有的,如果使用mews驗(yàn)證碼包的話,其驗(yàn)證碼驗(yàn)證規(guī)則就是captcha
控制器中進(jìn)行驗(yàn)證
驗(yàn)證規(guī)則:
'captcha'=>'required|captcha'
解決翻譯的問(wèn)題:
修改語(yǔ)言包文件:validation.php
在數(shù)組中添加captcha元素即可
當(dāng)然我們也可以不使用表單自動(dòng)驗(yàn)證這種方式,而是先接收異步提交過(guò)來(lái)的數(shù)據(jù)。
然后通過(guò)驗(yàn)證碼校驗(yàn)方法進(jìn)行驗(yàn)證,自定義返回JSON格式數(shù)據(jù)。
$admin = Request::post();$captcha = $admin['captcha'];if(!captcha_check($captcha)){ exit(json_encode(['code'=>1,'msg'=>'驗(yàn)證碼不正確,請(qǐng)重新輸入!']));}
顯示效果展示:
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)