How to Add Captcha in PHP Form

Add the Google re CAPTCHA in PHP HTML Form; Through this tutorial, i am going to show you how to integrate or add google re captcha in PHP HTML forms like registration, login, contact form.

How to Add Captcha in PHP Form

Follow the below given steps to add google captach in PHP html forms like registration, login, contact etc: is as follows:

  1. Create Table In DB by Sql Query
  2. Create Database Connection PHP File
  3. Register your website on Google Re captcha and Get All Details
  4. Create User Registration Form with Captcha Validation In PHP
  5. Create PHP File to Check Captcha and Save User Details

Step 1: Create Table In DB by Sql Query

Run the following query to create table into your selected database; is as follows:

CREATE TABLE `users1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(250) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Step 2: Create a Database Connection PHP File

Create a file name db.php and add the following code into db.php file:

<?php
	$servername='localhost';
	$username='root';
	$password='';
	$dbname = "my_db";
	$conn=mysqli_connect($servername,$username,$password,"$dbname");
	  if(!$conn){
		  die('Could not Connect MySql Server:' .mysql_error());
		}
?>

Step 3: Register your website on Google Re captcha and Get All Details

To add google recaptcha to your website you need to register your website here https://www.google.com/recaptcha/admin. Then get your site key and secret key.about:blank

Step 4: Create User Registration Form with Captcha Validation In PHP

Create user registration form that named index.php and add google captcha validation.

So, open index.php and add the following code into it:

<!doctype html>
<html lang="en">
   <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  
      <title>How to Add Captcha in PHP Registration Form</title>
       <!-- CSS -->
       <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
       <script src="https://www.google.com/recaptcha/api.js" async defer></script>
   </head>
   <body>
      <div class="container mt-5">
          <div class="card">
            <div class="card-header text-center">
              Add Google Captcha in PHP Registration Form
            </div>
            <div class="card-body">
              <form action="validate-captcha.php" method="post">
                <div class="form-group">
                  <label for="exampleInputEmail1">Name</label>
                  <input type="text" name="name" class="form-control" id="name" required="">
                </div>                                
                <div class="form-group">
                  <label for="exampleInputEmail1">Email address</label>
                  <input type="email" name="email" class="form-control" id="email" aria-describedby="emailHelp" required="">
                  <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
                </div>
                <div class="form-group">
                  <label for="exampleInputEmail1">Password</label>
                  <input type="password" name="password" class="form-control" id="password" required="">
                </div>                   
                <div class="form-group">
                  <label for="exampleInputEmail1">Confirm Password</label>
                  <input type="password" name="cpassword" class="form-control" id="cpassword" required="">
                </div>   
                <div class="g-recaptcha" data-sitekey="Your Site Key"></div>
                <input type="submit" name="password-reset-token" class="btn btn-primary">
              </form>
            </div>
          </div>
      </div>
   </body>
</html>

Step 5: Create PHP File to Check Captcha and Save User Details

Create validate-captcha.php file and add the following code into your validate-captcha.php file.

<?php
if(isset($_POST['submit']) && $_POST['g-recaptcha-response']!="")
{
 include "db.php";
 $secret = 'You Site Key';
 $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
 $responseData = json_decode($verifyResponse);
 if($responseData->success)
 {
  $name = $_POST['name'];
  $email = $_POST['email'];
  $pass = $_POST['password'];
  
  mysqli_query($conn, "INSERT INTO users(name, email ,password) VALUES('" . $_POST['name'] . "', '" . $_POST['email'] . "', '" . md5($_POST['password']) . "')");
  echo "User registration form with captcha validation has been successfully saved";
 }
}

The validate-captcha.php file code will validate your captach and then store user registration data into database table.

Conclusion

Thats all, this is how to create form with google reCAPTCHA using PHP and MySQL.

Recommended PHP Tutorials

Leave a Comment