PHPackages                             xuejd3/captcha - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. xuejd3/captcha

ActivePackage

xuejd3/captcha
==============

Laravel 13 Captcha Package

13.0.0(1mo ago)01↑2900%MITPHPPHP ^8.3

Since Jan 25Pushed 1mo agoCompare

[ Source](https://github.com/xuejd3/captcha)[ Packagist](https://packagist.org/packages/xuejd3/captcha)[ Docs](https://github.com/mewebstudio/captcha)[ RSS](/packages/xuejd3-captcha/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (8)Versions (60)Used By (0)

Captcha for Laravel 10/11/12
============================

[](#captcha-for-laravel-101112)

[![Build Status](https://camo.githubusercontent.com/059f66ef89e51b775dda5384be18537e707ef24cb8a469611b4d4d8bf1b09b7d/68747470733a2f2f7472617669732d63692e6f72672f6d6577656273747564696f2f636170746368612e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/mewebstudio/captcha) [![Scrutinizer Code Quality](https://camo.githubusercontent.com/fa85500631c0dba36a80e40bc3ea1ef174f1cdd632d08dd47930edb7a01af1e5/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6d6577656273747564696f2f636170746368612f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/mewebstudio/captcha/?branch=master)[![Latest Stable Version](https://camo.githubusercontent.com/e3ecb233b8e0adfa95c856e5c0fcde7db78136a6fe1c17752e85f4f71b186932/68747470733a2f2f706f7365722e707567782e6f72672f6d6577732f636170746368612f762f737461626c652e737667)](https://packagist.org/packages/mews/captcha)[![Latest Unstable Version](https://camo.githubusercontent.com/f04f4956555fcebad8b051a77ccbff50abc65dfe3b2e71d89585d1b97a966f98/68747470733a2f2f706f7365722e707567782e6f72672f6d6577732f636170746368612f762f756e737461626c652e737667)](https://packagist.org/packages/mews/captcha)[![License](https://camo.githubusercontent.com/5f622a69c4b52e57bb82b9fbe114ca794524e302b15e37f1876f7c258b09a7c2/68747470733a2f2f706f7365722e707567782e6f72672f6d6577732f636170746368612f6c6963656e73652e737667)](https://packagist.org/packages/mews/captcha)[![Total Downloads](https://camo.githubusercontent.com/3c3d4e421265d3246f3e42eab65910abc6cb4eb2cb7b4c0ad6b0b124f0eda110/68747470733a2f2f706f7365722e707567782e6f72672f6d6577732f636170746368612f646f776e6c6f6164732e737667)](https://packagist.org/packages/mews/captcha)

A simple [Laravel 5/6/7/8/9/10/11/12](http://www.laravel.com/) service provider for including the [Captcha for Laravel](https://github.com/mewebstudio/captcha).

for Laravel 4 [Captcha for Laravel Laravel 4](https://github.com/mewebstudio/captcha/tree/master-l4)

for Laravel 5 to 12 [Captcha for Laravel Laravel 5 and Newer versions](https://github.com/mewebstudio/captcha/tree/master-l5-l9)

Preview
-------

[](#preview)

[![Preview](https://camo.githubusercontent.com/5796b984677c086025788097a4f9f89701595234cb98a23c7276c4ea5424c6ef/68747470733a2f2f696d6167652e6962622e636f2f6b5a784d4c6d2f696d6167652e706e67)](https://camo.githubusercontent.com/5796b984677c086025788097a4f9f89701595234cb98a23c7276c4ea5424c6ef/68747470733a2f2f696d6167652e6962622e636f2f6b5a784d4c6d2f696d6167652e706e67)

- [Captcha for Laravel 5/6/7/8/9/10/11/12](#captcha-for-laravel-5-6-7)
    - [Preview](#preview)
    - [Installation](#installation)
    - [Usage](#usage)
    - [Configuration](#configuration)
        - [Custom settings:](#custom-settings)
        - [Disable validation:](#disable-validation)
    - [Example Usage](#example-usage)
        - [Session Mode:](#session-mode)
        - [Stateless Mode:](#stateless-mode)
- [Return Image](#return-image)
- [Return URL](#return-url)
- [Return HTML](#return-html)
- [To use different configurations](#to-use-different-configurations)
    - [Links](#links)

Installation
------------

[](#installation)

The Captcha Service Provider can be installed via [Composer](http://getcomposer.org) 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.*",
        "mews/captcha": "~3.0"
    },
    "minimum-stability": "stable"
}
```

or

Require this package with composer:

```
composer require mews/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` in php.ini. And you also need include `php_fileinfo.dll` and `php_mbstring.dll` to fit the requirements of `mews/captcha`'s dependencies.

Usage
-----

[](#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' => [
        // ...
        'Mews\Captcha\CaptchaServiceProvider',
    ]
```

for Laravel 5.1+

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

For Laravel 11+ you can add the provider to `bootstrap\providers.php`.

```
return [
    // ...
    Mews\Captcha\CaptchaServiceProvider::class
];
```

Find the `aliases` key in `config/app.php`.

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

for Laravel 5.1+

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

For Laravel 11+ : you do not need to add the alias, it will be added automatically.

Configuration
-------------

[](#configuration)

### Custom settings:

[](#custom-settings)

To use your own settings, publish config.

`$ php artisan vendor:publish --provider="Mews\Captcha\CaptchaServiceProvider"`

`config/captcha.php`

```
return [
    'default'   => [
        'length'    => 5,
        'width'     => 120,
        'height'    => 36,
        'quality'   => 90,
        'math'      => true,  //Enable Math Captcha
        'expire'    => 60,    //Captcha expiration
    ],
    // ...
];
```

### Images

[](#images)

To use your own custom images for a background, set 'bgImage' to true and change the 'bgsDirectory' setting to your directory you want the image(s) to be used.
If you just want to change the background color, then set 'bgImage' to false and the 'bgColor' will be applied.

### Disable validation:

[](#disable-validation)

To disable the captcha validation use `CAPTCHA_DISABLE` environment variable. e.g. **.env** config:

```
CAPTCHA_DISABLE=true
```

Example Usage
-------------

[](#example-usage)

### Session Mode:

[](#session-mode)

```
    // [your site path]/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 'Incorrect!';
            } else {
                echo 'Matched :)';
            }
        }

        $form = '';
        $form .= '';
        $form .= '' . captcha_img() . '';
        $form .= '';
        $form .= 'Check';
        $form .= '';
        return $form;
    });
```

Detailed Example in Laravel way view files

```
    //register.blade.php

         @error('captcha')
         {{ $message }} @enderror
```

controller files

```
        Validator::make($input, [
            'name' => ['required', 'string', 'max:255'],
            'email' => [
                'required',
                'string',
                'email',
                'max:255',
                Rule::unique(User::class),
            ],
            'password' => $this->passwordRules(),
            'captcha' => 'required|captcha'
        ])->validate();
```

### Stateless Mode:

[](#stateless-mode)

You get key and img from this url `http://localhost/captcha/api/math`and verify the captcha using this method:

```
    //key is the one that you got from json response
    // fix validator
    // $rules = ['captcha' => 'required|captcha_api:'. request('key')];
    $rules = ['captcha' => 'required|captcha_api:'. request('key') . ',math'];
    $validator = validator()->make(request()->all(), $rules);
    if ($validator->fails()) {
        return response()->json([
            'message' => 'invalid captcha',
        ]);

    } else {
        //do the job
    }
```

Return Image
============

[](#return-image)

```
captcha();
```

or

```
Captcha::create();
```

Return URL
==========

[](#return-url)

```
captcha_src();
```

or

```
Captcha::src('default');

```

Return HTML
===========

[](#return-html)

```
captcha_img();
```

or

```
Captcha::img();
```

To use different configurations
===============================

[](#to-use-different-configurations)

```
captcha_img('flat');

Captcha::img('inverse');
```

etc.

Based on [Intervention Image](https://github.com/Intervention/image)

^\_^

Links
-----

[](#links)

- [Intervention Image](https://github.com/Intervention/image)
- [L5 Captcha on Github](https://github.com/mewebstudio/captcha)
- [L5 Captcha on Packagist](https://packagist.org/packages/mews/captcha)
- [For L4 on Github](https://github.com/mewebstudio/captcha/tree/master-l4)
- [License](http://www.opensource.org/licenses/mit-license.php)
- [Laravel website](http://laravel.com)
- [Laravel Turkiye website](http://www.laravel.gen.tr)
- [mewebstudio](https://github.com/mewebstudio/captcha)

###  Health Score

54

—

FairBetter than 97% of packages

Maintenance90

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity92

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 59.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~82 days

Recently: every ~126 days

Total

55

Last Release

46d ago

Major Versions

v1.0.1 → 2.0.02015-04-12

1.0.2 → 2.2.02018-04-25

2.3.0 → 3.0.02019-09-05

3.4.7 → 13.0.02026-03-25

PHP version history (7 changes)v1.0.1PHP &gt;=5.3.0

2.0.0PHP &gt;=5.4

3.0.0PHP ^7.2

3.2.5PHP ^7.2|^8.0

3.3.1PHP ^7.2|^8.1

3.3.3PHP ^7.2|^8.1|^8.2|^8.3

13.0.0PHP ^8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/b4f561805939698fed46bd2240ab99f626e8b1691560ba645617909760d09b60?d=identicon)[xuejd3](/maintainers/xuejd3)

---

Top Contributors

[![mewebstudio](https://avatars.githubusercontent.com/u/2125733?v=4)](https://github.com/mewebstudio "mewebstudio (160 commits)")[![mauris](https://avatars.githubusercontent.com/u/996939?v=4)](https://github.com/mauris "mauris (33 commits)")[![jcanchor](https://avatars.githubusercontent.com/u/16929759?v=4)](https://github.com/jcanchor "jcanchor (11 commits)")[![mwllgr](https://avatars.githubusercontent.com/u/25794895?v=4)](https://github.com/mwllgr "mwllgr (10 commits)")[![sineld](https://avatars.githubusercontent.com/u/445349?v=4)](https://github.com/sineld "sineld (7 commits)")[![saidbakr](https://avatars.githubusercontent.com/u/467554?v=4)](https://github.com/saidbakr "saidbakr (5 commits)")[![hutushen222](https://avatars.githubusercontent.com/u/352215?v=4)](https://github.com/hutushen222 "hutushen222 (3 commits)")[![Sergej-Tihonov](https://avatars.githubusercontent.com/u/15265981?v=4)](https://github.com/Sergej-Tihonov "Sergej-Tihonov (3 commits)")[![jxlwqq](https://avatars.githubusercontent.com/u/2421068?v=4)](https://github.com/jxlwqq "jxlwqq (3 commits)")[![khalilst](https://avatars.githubusercontent.com/u/9103966?v=4)](https://github.com/khalilst "khalilst (3 commits)")[![laravel-shift](https://avatars.githubusercontent.com/u/15991828?v=4)](https://github.com/laravel-shift "laravel-shift (3 commits)")[![profkevinbrowne](https://avatars.githubusercontent.com/u/67722209?v=4)](https://github.com/profkevinbrowne "profkevinbrowne (2 commits)")[![Assmay](https://avatars.githubusercontent.com/u/18699209?v=4)](https://github.com/Assmay "Assmay (2 commits)")[![farzinghanbari](https://avatars.githubusercontent.com/u/14145192?v=4)](https://github.com/farzinghanbari "farzinghanbari (2 commits)")[![masoodvahid](https://avatars.githubusercontent.com/u/15362786?v=4)](https://github.com/masoodvahid "masoodvahid (2 commits)")[![jp7anderson](https://avatars.githubusercontent.com/u/9416588?v=4)](https://github.com/jp7anderson "jp7anderson (2 commits)")[![teksite](https://avatars.githubusercontent.com/u/149485086?v=4)](https://github.com/teksite "teksite (2 commits)")[![ithsjeff](https://avatars.githubusercontent.com/u/160572359?v=4)](https://github.com/ithsjeff "ithsjeff (2 commits)")[![ycrao](https://avatars.githubusercontent.com/u/3280204?v=4)](https://github.com/ycrao "ycrao (1 commits)")[![alisafari](https://avatars.githubusercontent.com/u/6145611?v=4)](https://github.com/alisafari "alisafari (1 commits)")

---

Tags

captchalaravel13 Captchalaravel13 Security

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/xuejd3-captcha/health.svg)

```
[![Health](https://phpackages.com/badges/xuejd3-captcha/health.svg)](https://phpackages.com/packages/xuejd3-captcha)
```

###  Alternatives

[mews/captcha

Laravel 5/6/7/8/9/10/11/12 Captcha Package

2.6k5.5M84](/packages/mews-captcha)[unisharp/laravel-filemanager

A file upload/editor intended for use with Laravel 5 to 10 and CKEditor / TinyMCE

2.2k3.3M73](/packages/unisharp-laravel-filemanager)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)[flarum/core

Delightfully simple forum software.

211.3M1.9k](/packages/flarum-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
