Yogesh Chauhan's Blog

How to add recaptcha version 3 to PHP website?

in PHP on March 19, 2021

You are going to need recaptcha keys to get started on this. Get it from Google here.

Step 1: JavaScript

Add this JavaScript code between your head tags using script tag or include a seperate .js file in head tags.



grecaptcha.ready(function () {
  grecaptcha
    .execute("YOUR_RECAPTCHA_SITE_KEY", { action: "contact" })
    .then(function (token) {
      var recaptchaResponse = document.getElementById("recaptchaResponse");
      recaptchaResponse.value = token;
    });
});


Step 2: HTML form

Add this line after your submit button but before the form tag ends.



 <form>
    ...
    ...
   <button type="submit">Submit</button>
   <input type="hidden" name="recaptcha_response" id="recaptchaResponse">
 </form>


Step 3: PHP

Use this code for server side integration.



<?php // Check if form was submitted:
if ($_SERVER['REQUEST_METHOD'] === 'POST' &#038;&#038; isset($_POST['recaptcha_response'])) {

    // Build POST request:
    $recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
    $recaptcha_secret = 'YOUR_RECAPTCHA_SECRET_KEY';
    $recaptcha_response = $_POST['recaptcha_response'];

    // Make and decode POST request:
    $recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&#038;response=' . $recaptcha_response);
    $recaptcha = json_decode($recaptcha);

    // Take action based on the score returned:
    if ($recaptcha->score >= 0.5) {
        // Verified - send email
    } else {
        // Not verified - show form error
    }

} ?>


Credit: stevencotterill. Google has nice guides for client side and server side integration as well.


Most Read

#1 Solution to the error “Visual Studio Code can’t be opened because Apple cannot check it for malicious software” #2 How to add Read More Read Less Button using JavaScript? #3 How to check if radio button is checked or not using JavaScript? #4 Solution to “TypeError: ‘x’ is not iterable” in Angular 9 #5 How to uninstall Cocoapods from the Mac OS? #6 PHP Login System using PDO Part 1: Create User Registration Page

Recently Posted

#Apr 8 JSON.stringify() in JavaScript #Apr 7 Middleware in NextJS #Jan 17 4 advanced ways to search Colleague #Jan 16 Colleague UI Basics: The Search Area #Jan 16 Colleague UI Basics: The Context Area #Jan 16 Colleague UI Basics: Accessing the user interface
You might also like these
JavaScript Input Validation Theme Park Example using throw StatementJavaScriptHow to Secure Web or Mobile Browsers?MiscellaneousKanban vs Scrum: The two frameworks of agile principlesMiscellaneousWordPress: How to access first and random row values from a repeater field in ACF?WordPressHow to add multiple components in React app?ReactCheck whether a variable exists and not empty in PHPPHPHow to render Lists in React?ReactHow to create a sticky menu pin using CSS?CSSColleague UI Basics: The Context AreaColleagueAdvanced nesting in Sass (SCSS) using at-rootSCSSResponsive Masonry Grid using CSS columns PropertyCSSIs Software Really Eating The World? I don’t think soMiscellaneous