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

时间:2016-08-25 17:04:51

标签: php jquery ajax validation recaptcha

我想使用jQuery Validation Plugin和带有Session的php创建recaptcha的验证。

的jQuery

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

PHP

我也想创建验证使用$ _SESSION,我尝试创建它,在我的(signup-process.php)页面中,我在recrapcha字段下的表单页面中打印会话消息。它无法正常工作:(

======  请帮助我使用这两种方式为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");
}

1 个答案:

答案 0 :(得分:1)

@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>