Download Laravel App
composer create-project --prefer-dist laravel/laravel my-app
C:\xampp\htdocs\laravel>composer create-project --prefer-dist laravel/laravel my-app
Connecting our Database
open .env file root directory.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laraveldb
DB_USERNAME=root
DB_PASSWORD=
Create Controller
php artisan make:controller UserController -r
C:\xampp\htdocs\laravel\my-app>php artisan make:controller UserController -r
// app\Http\Controllers\UserController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller
{
public function create() {
return view('create_user');
}
public function store(Request $request) {
$request->validate([
'name' => 'required',
'email' => 'required|email',
'password' => 'required|min:6',
'g-recaptcha-response' => 'required|captcha',
]);
User::create($request->all());
return "Successfully created!";
}
}
Database Migration run this migration
C:\xampp\htdocs\laravel\my-app>php artisan migrate
Create a view file
resources/views/create_user.blade.php
No CAPTCHA reCAPTCHA
https://github.com/anhskohbo/no-captcha
Install
composer require anhskohbo/no-captcha
C:\xampp\htdocs\laravel\my-app>composer require anhskohbo/no-captcha
Publish the config file
php artisan vendor:publish --provider="Anhskohbo\NoCaptcha\NoCaptchaServiceProvider"
Add Google Site Key and Secret Key configuration
open the .env file and add these keys.
NOCAPTCHA_SECRET=secret-key
NOCAPTCHA_SITEKEY=site-key
https://www.google.com/recaptcha/
Bootstrap 5
https://getbootstrap.com/docs/5.0/getting-started/introduction/
jquery
https://www.jsdelivr.com/package/npm/jquery
//resources/views/create_user.blade.php
<html>
<head>
<title>Laravel 9 How to integrate Google reCAPTCHA</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css">
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
</head>
<body>
<div class="container">
<h1>Laravel 9 How to integrate Google reCAPTCHA</h1>
@if ($errors->any())
<div class="alert alert-danger">
<strong>Errors!</strong> <br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="row justify-content-center">
<div class="col-md-6">
<div class="card">
<h3 class="card-header text-center">Register User</h3>
<div class="card-body">
<form action="{{url('users/store')}}" method="POST">
@csrf
<div class="form-group mb-3">
<input type="text" name="name" class="form-control" placeholder="User name">
</div>
<div class="form-group mb-3">
<input type="email" name="email" class="form-control" placeholder="User email">
</div>
<div class="form-group mb-3">
<input type="text" name="password" class="form-control" placeholder="User Password">
</div>
<div class="form-group mb-3">
<strong>Google recaptcha :</strong>
{!! NoCaptcha::renderJs() !!}
{!! NoCaptcha::display() !!}
</div>
<div class="d-grid mx-auto">
<button type="submit" class="btn btn-dark btn-block">Submit</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
Routes routes/web.php
//routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UserController;
Route::get('/', function () {
return view('welcome');
});
Route::get('users', [UserController::class, 'create']);
Route::post('users/store', [UserController::class, 'store']);
Run C:\xampp\htdocs\laravel\my-app>php artisan serve Starting Laravel development server: http://127.0.0.1:8000
