Description
A simple Laravel service provider for including the Captcha for Laravel.
Session Mode:
// [your site path]/Http/routes.phpRoute::any('captcha-test', function() { if (request()->getMethod() == 'POST') { $rules = ['captcha' => 'required|captcha']; $validator = validator()->make(request()->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;});
Detailed Example in Laravel way view files
//register.blade.php<img src="{{ captcha_src() }}" alt="captcha"> <div class="mt-2"></div> <input type="text" name="captcha" class="form-control @error('captcha') is-invalid @enderror" placeholder="Please Insert Captch" > @error('captcha') <div class="invalid-feedback">{{ $message }}</div> @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:
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}
Recent Courses on Laravel Daily
Laravel 13 Starter Kit Teams and Customizations
10 lessons
33 min
Testing in Laravel 13 For Beginners
26 lessons
1 h 41 min read
How to Structure Laravel 13 Projects
16 lessons
1 h 32 min read