做網(wǎng)站就少不了驗(yàn)證碼费韭,不說廢話,直接干庭瑰。
- 安裝Captcha包
$ composer require mews/captcha
注:Windows中使用該擴(kuò)展包還需要安裝 GD2 擴(kuò)展(在php.ini中取消php_gd2.dll前面的注釋)星持。
- 在config/app.php中注冊服務(wù)提供者和相應(yīng)門面:
'providers' => [
Mews\Captcha\CaptchaServiceProvider::class,
]
'aliases' => [
// ...
'Captcha' => Mews\Captcha\Facades\Captcha::class,
]
- 如果要使用自定義的配置,還可以發(fā)布配置文件到config目錄:
$ php artisan vendor:publish
- 編輯生成的captcha.php:
return [
'default' => [
'length' => 5,
'width' => 120,
'height' => 36,
'quality' => 90,
],
];
- 使用實(shí)例
// app/Http/routes.php
Route::any('captcha-test', function()
{
if (\Request::getMethod() == 'POST')
{
$rules = ['captcha' => 'required|captcha'];
$validator = \Validator::make(\Request::all(), $rules);
if ($validator->fails())
{
echo '<p style="color: #ff0000;">Incorrect!</p>';
}
else
{
echo '<p style="color: #00ff30;">Matched :)</p>';
}
}
$form = '<form method="post" action="captcha-test">';
$form .= '<input type="hidden" name="_token" value="' . csrf_token() . '">';
$form .= '<p><img src="{!! captcha_src() !!}" onclick="this.src='{{ captcha_src() }}?r='+Math.random();" /></p>';
$form .= '<p><input type="text" name="captcha"></p>';
$form .= '<p><button type="submit" name="check">Check</button></p>';
$form .= '</form>';
return $form;
});
- 點(diǎn)擊切換驗(yàn)證碼
<img src="{!! captcha_src() !!}" onclick="this.src='{{ captcha_src() }}?r='+Math.random();" />