hpd / captcha
Laravel Captcha Code Package
Installs: 2 382
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
This package is auto-updated.
Last update: 2025-05-13 05:47:14 UTC
README
Preview
Installation
To install this package, use Composer:
composer require hpd/captcha
Usage
There is no need to add CaptchaServiceProvider to the providers array in config/app.php.
Configuration
To use your own settings, first publish the config/config.php file. Then, customize the configuration properties as needed.
$ php artisan vendor:publish config/config.php
return [ 'disable' => env('CAPTCHA_DISABLE', !str_contains(env('APP_ENV', 'local'), 'prod')), 'characters'=>[ 'lowercase'=>'abxefghijklymcnopsqrtuvd', 'uppercase'=>'AXOBEPFCYDGWSJKZHIRULMNQTV', 'digits'=>'6302581497' ], 'default' => [ 'length' => 5, 'bgColor'=>'#FFFFFF', 'color'=>'random', 'flake'=>true, 'flakeColor'=>'#BBC6C8', 'sensitive'=>false, 'digits'=>true, 'uppercase'=>true, 'lowercase'=>true, 'alpha'=>10, 'blur'=>true ], ... ];
Properties
The following properties can be customized in the published config.php file.
protected string $bgColor="#000000"; protected string $color="#FFFFFF"; protected string $flakeColor="#FFFFFF"; protected bool $blur=false; protected int $alpha=0; protected bool $flake=false; protected bool $line=false; protected bool $difficult= false; protected int $length=5; protected int $width=110; protected int $height=40; protected int $expire=60; protected bool $sensitive=false; protected array $characters; protected bool $lowercase=true; protected bool $uppercase=false; protected bool $digits=false; protected string $fontDir=''; protected string $font='libre.ttf'; protected int $fontSize=24;
How to use
You can use the following helper functions in your project to get a Captcha image
captcha(); // returns image captcha_get_src()// returns image source(URl) captcha_get_html()// returns img html element
Use desired configuration
//If no configuration is specified, the default configuration will be used. captcha('default'); // returns image captcha_get_src('easy')// returns image source(URl) captcha_get_html('dark')// returns img html element
Example
To get the Captcha image source:
<img src="{!! captcha_get_src() !!}" titile="Captcha" alt="Captcha">
To get the image HTML element:
<div> {!! captcha_get_html() !!} </div>
Validation
Session Mode:
Route::post('captcha_check', function() { $validator = validator()->make(request()->all(), ['captcha' => 'required|captcha']; ); if ($validator->fails()) { echo '<p style="color: #ff0000;">Incorrect!</p>'; } else { echo '<p style="color: #00ff00;">Matched </p>'; } });
Stateless Mode:
You can get the image and code from this URL:
http://[yourdomain.com]/captcha/api/default
It returns:
[ 'code'=>$hash, 'sensitive'=>$this->sensitive, 'image'=>'data:image/png;base64,'.$this->createBase64FromImg($this->image) ]
To validate the Captcha, send the 'code' to the validator. Set the config type to match the one previously selected:
$validator = validator()->make(request()->all(), ['captcha' => 'required|captcha_api:'. request('code') . ',default']; ); if ($validator->fails()) { return response()->json([ 'message' => 'invalid captcha', ]); } else { // continue }
License
This project is licensed under the Proprietary License.
Donate
If you like this project and want to support it, feel free to send USDT donations to the addresses below. Thank you! 🙏
Network | Address |
---|---|
0x2bFcEcCF2f25d48CbdC05a9d55A46262a0A6E542 |
|
TEHzXzg4nMp7MW5pVH6fGmuq7JBaFovMW3 |
Your support allows me to continue maintaining and improving this project. Thank you so much for your contribution! 🙏
Check Out My Other Projects
Hey! If you liked this package, you might enjoy some of my other work too:
- Validatify – A PHP input validation library.
- jQuery Confirmation Dialog – Customizable jQuery Confirmation Dialog Plugin with RTL and Theming Support
I'm always building and sharing new stuff — feel free to take a look, star ⭐ what you like, or even open a PR!