Captcha for Laravel 5
Clone from https://github.com/mewebstudio/captcha, (*1)
Customize for one form one captcha., (*2)
This version use session to store captcha value so if you use more than one captcha in a page may be has issue overwrite session because more than one request of a session request same time., (*3)
Next version will has option to store captcha value to database., (*4)
, (*5)
A simple Laravel 5 service provider for including the Captcha for Laravel 5., (*6)
for Laravel 4 Captcha for Laravel Laravel 4, (*7)
Preview
, (*8)
Installation
The Captcha Service Provider can be installed via Composer by requiring the
mews/captcha
package and setting the minimum-stability
to dev
(required for Laravel 5) in your
project's composer.json
., (*9)
{
"require": {
"laravel/framework": "5.0.*",
"votong/captcha": "^1.0"
},
"minimum-stability": "dev"
}
or, (*10)
Require this package with composer:, (*11)
composer require votong/captcha
Update your packages with composer update
or install with composer install
., (*12)
In Windows, you'll need to include the GD2 DLL php_gd2.dll
as an extension in php.ini., (*13)
Usage
To use the Captcha Service Provider, you must register the provider when bootstrapping your Laravel application. There are
essentially two ways to do this., (*14)
Find the providers
key in config/app.php
and register the Captcha Service Provider., (*15)
'providers' => [
// ...
'VoTong\Captcha\CaptchaServiceProvider',
]
for Laravel 5.1+, (*16)
'providers' => [
// ...
VoTong\Captcha\CaptchaServiceProvider::class,
]
Find the aliases
key in config/app.php
., (*17)
'aliases' => [
// ...
'Captcha' => 'VoTong\Captcha\Facades\Captcha',
]
for Laravel 5.1+, (*18)
'aliases' => [
// ...
'Captcha' => VoTong\Captcha\Facades\Captcha::class,
]
Configuration
To use your own settings, publish config., (*19)
$ php artisan vendor:publish
, (*20)
config/captcha.php
, (*21)
return [
'default' => [
'length' => 5,
'width' => 120,
'height' => 36,
'quality' => 90,
],
// ...
];
Example Usage
// [your site path]/Http/routes.php
Route::any('captcha-test', function()
{
if (Request::getMethod() == 'POST')
{
$rules = ['captcha' => 'required|captcha'];
$validator = Validator::make(Input::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>' . captcha_img() . '</p>';
$form .= '<p><input type="text" name="captcha"></p>';
$form .= '<p><button type="submit" name="check">Check</button></p>';
$form .= '</form>';
return $form;
});
Return Image
captcha();
or, (*22)
Captcha::create();
Return URL
captcha_src();
or, (*23)
Captcha::src();
Return HTML
captcha_img();
or, (*24)
Captcha::img();
To use different configurations
captcha_img('flat);
Captcha::img('inverse');
etc., (*25)
Based on Intervention Image, (*26)
^_^, (*27)
Links