JQuery validation for ReCaptcha

Recaptcha form is like this:

<script type="text/javascript">
    var RecaptchaOptions = {"theme":"red","lang":"en"};
</script><script type="text/javascript"
   src="https://www.google.com/recaptcha/api/challenge?k=6LeThAsTAAAAAKYRjSpA8XZ1s4izK65hYr9ulCiD">
</script><noscript>
   <iframe src="https://www.google.com/recaptcha/api/noscript?k=6LeThAsTAAAAAKYRjSpA8XZ1s4izK65hYr9ulCiD"
       height="300" width="500" frameborder="0"></iframe><br>
   <textarea name="recaptcha_challenge_field" rows="3" cols="40">
   </textarea>
   <input type="hidden" name="recaptcha_response_field"
       value="manual_challenge">
</noscript>

and validator of ZF2 for ReCaptcha is like this:

  $recaptcha = new ZendService\ReCaptcha\ReCaptcha(PUB_KEY, PRIV_KEY);
  $html = $recaptcha->getHTML();
  $result = $recaptcha->verify($_POST['recaptcha_challenge_field'], $_POST['recaptcha_response_field']);
  if (!$result->isValid()) {
      // invalid
  } else {
     // valid
  }

is it possible to validate it remotely like this: https://jqueryvalidation.org/remote-method

I tried below in remote php file and it doesn’t work:

$recaptcha = new ZendService\ReCaptcha\ReCaptcha(PUB_KEY, PRIV_KEY);
$result = $recaptcha->verify($_GET['recaptcha_challenge_field'], $_GET['recaptcha_response_field']);
if (!$result->isValid()) {
    echo json_encode(false);
} else {
    echo json_encode(true);
}

and js itself is:

$().ready(function() {
 $("#contact").validate({
                          rules: {
                                   recaptcha_response_field: {
                                              required: true,
                                              remote: "json.php"
                                   }             
                      }   
 });
});

is it possible at all or I did something wrong?

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.