vivekco/laravel-math-captcha
最新稳定版本:v1.1.0
Composer 安装命令:
composer require vivekco/laravel-math-captcha
包简介
Simple single-digit arithmetic captcha for Laravel.
README 文档
README
A lightweight, privacy-friendly Laravel package that provides simple single-digit arithmetic CAPTCHA for human verification.
Supports only single-digit operations (1–9) with
+,-, and×.
Features
- Random single-digit math questions.
- Securely stores answers in server-side session.
- Easy integration with controllers and Blade forms.
- Works without external services or images.
- Compatible with Laravel 10+ / 11+.
Installation
For local development or testing, add the package as a path repository in your Laravel app:
"repositories": [ { "type": "path", "url": "../packages/laravel-math-captcha" } ]
Require the package:
composer require vivekco/laravel-math-captcha:@dev
Laravel 10+ auto-discovers the service provider.
Optional: publish config if you want to customize defaults:
php artisan vendor:publish --provider="Vivekco\MathCaptcha\MathCaptchaServiceProvider" --tag=config
Usage
1. Generate a Math Question in Controller
$question = app('mathcaptcha')->generate();
$questionis a string like2 + 3,4 × 7, etc.- The answer is automatically stored in session (
math_captcha_answerby default).
2. Blade Form Example (With Error handling)
<form method="POST" action="{{ route('contact.submit') }}"> @csrf <label for="captcha_answer">Solve: {{ $question }}</label> <input type="text" id="captcha_answer" name="captcha_answer" required> <button type="submit">Submit</button> </form> @error('captcha_answer') <div style="color:red">{{ $message }}</div> @enderror
3. Validation in Controller
$request->validate([ 'captcha_answer' => ['required', function ($attribute, $value, $fail) { if (!app('mathcaptcha')->check($value)) { $fail('The math captcha answer is incorrect.'); } }] ]);
check($value)returnstrueif correct,falseif incorrect.
Config (Optional)
Published config: config/mathcaptcha.php
return [ 'min' => 1, 'max' => 9, 'operations' => ['+', '-', '×'], 'session_key' => 'math_captcha_answer', 'allow_negative' => true, ];
min/max: range of digits.operations: allowed operators.session_key: session key storing the answer.allow_negative: prevent negative results if false.
Local Testing
- Serve your Laravel app:
php artisan serve
-
Visit your test route, generate a question, submit correct/incorrect answers.
-
Run package tests (inside package folder):
./vendor/bin/phpunit tests
Contributing
- Fork the repository.
- Create a feature branch:
git checkout -b feat/my-feature. - Write tests for your changes.
- Commit and push.
- Open a Pull Request describing the change.
Follow PSR-12 coding standards.
License
MIT © Vivekco
统计信息
- 总下载量: 10
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 7
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-11-16