vivekco/laravel-math-captcha
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
vivekco/laravel-math-captcha 适用场景与选型建议
vivekco/laravel-math-captcha 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 10 次下载、GitHub Stars 达 7, 最近一次更新时间为 2025 年 11 月 16 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 vivekco/laravel-math-captcha 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 vivekco/laravel-math-captcha 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 10
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 7
- 点击次数: 26
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-11-16