如何使用 jQuery 验证插件和 PHP 创建 google reCAPTCHA v2.0 验证

How to create google reCAPTCHA v2.0 validation using jQuery Validation Plugin and PHP

我想为使用 jQuery 验证插件和 php 会话创建的 recaptcha 创建验证。

jQuery

我正在使用 (https://jqueryvalidation.org/) 这个 jquery 插件进行表单验证,并且我这样做了。但我想为使用此插件提交的 recaptcha 创建验证,但我无法创建它。 Here is a validation for google recaptcha v1.0 使用这些插件。 请帮助我使用此插件为 google recaptcha v2.0(已归档)创建验证。

PHP

我还想使用 $_SESSION 创建验证,我尝试在我的 (signup-process.php) 页面中创建它,并在 recaptcha 文件下的表单页面中打印会话消息。它不起作用:(

====== 请帮助我为使用这两种方式提交的 recaptcha 创建验证。

HTML

<form action="signup-process.php" method="post" id="signupForm">
  <input class="form-control" type="text" name="name" id="name">
   <div class="g-recaptcha" data-sitekey="my-key"></div>

 <!--Session validation message-->
  /*<?php if(isset($_SESSION["ReC"]) && !empty($_SESSION["ReC"])){
      echo $_SESSION["ReC"];
       unset($_SESSION["ReC"]); }?> */

     <input class="btn btn-block" type="submit" value="Sign Up" name="submitted">
  </form>

JS

$("#signupForm").validate({
        rules: {
            name: "required",
        },
        messages: {
            name: "Please enter your name",
        }
    });

报名-process.php

if(isset($_POST['g-recaptcha-response'])&& !empty($_POST['g-recaptcha-response'])){

    $secret = "my-key";
    $ip = $_SERVER['REMOTE_ADDR'];
    $captcha = $_POST['g-recaptcha-response'];
    $rsp  = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$captcha&remoteip$ip");

    $arr = json_decode($rsp,TRUE);
    if($arr['success'] == "true"){
        echo 'Done';
    }else{
        echo 'SPam';
} else {
    $_SESSION["ReC"]="Please select captcha";
        header("location:signup.php");
}

@NK 如果您将 php 验证消息应用到表单标记之上。它会起作用。

像这样

 <!--Session validation message-->
 <?php if(isset($_SESSION["ReC"]) && !empty($_SESSION["ReC"])){
    echo $_SESSION["ReC"];
    unset($_SESSION["ReC"]); }
?>

<form action="signup-process.php" method="post" id="signupForm">
  <input class="form-control" type="text" name="name" id="name">
  <div class="g-recaptcha" data-sitekey="my-key"></div>
  <input class="btn btn-block" type="submit" value="Sign Up" name="submitted">
</form>