votong/captcha

Laravel 5 Captcha Package

1.0.0 2015-08-07 08:58 UTC

This package is not auto-updated.

Last update: 2024-11-13 10:46:25 UTC


README

Clone from https://github.com/mewebstudio/captcha

Customize for one form one captcha.

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.

Next version will has option to store captcha value to database.

Build Status Scrutinizer Code Quality

A simple Laravel 5 service provider for including the Captcha for Laravel 5.

for Laravel 4 Captcha for Laravel Laravel 4

Preview

Preview

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.

{
    "require": {
        "laravel/framework": "5.0.*",
        "votong/captcha": "^1.0"
    },
    "minimum-stability": "dev"
}

or

Require this package with composer:

composer require votong/captcha

Update your packages with composer update or install with composer install.

In Windows, you'll need to include the GD2 DLL php_gd2.dll as an extension in php.ini.

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.

Find the providers key in config/app.php and register the Captcha Service Provider.

    'providers' => [
        // ...
        'VoTong\Captcha\CaptchaServiceProvider',
    ]

for Laravel 5.1+

    'providers' => [
        // ...
        VoTong\Captcha\CaptchaServiceProvider::class,
    ]

Find the aliases key in config/app.php.

    'aliases' => [
        // ...
        'Captcha' => 'VoTong\Captcha\Facades\Captcha',
    ]

for Laravel 5.1+

    'aliases' => [
        // ...
        'Captcha' => VoTong\Captcha\Facades\Captcha::class,
    ]

Configuration

To use your own settings, publish config.

$ php artisan vendor:publish

config/captcha.php

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

Captcha::create();

Return URL

captcha_src();

or

Captcha::src();

Return HTML

captcha_img();

or

Captcha::img();

To use different configurations

captcha_img('flat);

Captcha::img('inverse');

etc.

Based on Intervention Image

^_^

Links