Jquery validation captcha secret key

0

Witam,
Chciałbym za pomocą jquery validation sprawdzić captchę. Chodzi mi o to żeby jeśli nie jest zaznaczony wyskoczył błąd "Pole wymagane" co działa poprawnie,
natomiast druga rzecz to jeśli po sprawdzeniu za pomocą secret key otrzymam złą odpowiedź to chciałbym żeby pojawił się błąd "Potwierdź że nie jesteś botem". Poniżej przedstawiam to co udało mi się zrobić, jednak poniższe rozwiązanie nie działa nie otrzymuję żadnej informacji zwrotnej - po zaznaczeniu pola captcha (klucz secret key celowo podałem zły).

<div class="g-recaptcha margins-captcha center" data-sitekey="My-Site-Key" id="reCaptcha" name="captcha"></div>
$(document).ready(function () {

    $('#formSignup').validate({
        
        rules: {
           captcha: {
              required: function () {
                  if (grecaptcha.getResponse() === '') {
                      return true;
                  } else {
                      return false;
                  }
              },
              remote: {
                url: "/signup/checkCaptcha",
                type: "post",
                data: {
                    recaptchaResponse: function () {
                        return grecaptcha.getResponse();
                    }
                }
            }
        },
        messages: {
            captcha: {
                required: 'Pole wymagane',
                remote: 'Potwierdź że nie jesteś botem'
            }
        }
    });
}
public function checkCaptcha()
{
    if(isset($_POST['recaptchaResponse'])){
        $secretKey = "MY_SECRET_KEY";

        $check = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secretKey.'&response='.$_POST['recaptchaResponse']);

        $answer = json_decode($check);   
        
        if($answer->success==false){
            echo $answer;
        }        
    }
}

Nie wiem gdzie może być błąd, proszę o pomoc.

0

Ja bym na Twoim miejscu wywalił jQuery, i użył po prostu fetch().

0
Riddle napisał(a):

Ja bym na Twoim miejscu wywalił jQuery, i użył po prostu fetch().

Mógłbym prosić o przykład jak zastosować fetch() w moim przypadku?

0
bartosz1986 napisał(a):
Riddle napisał(a):

Ja bym na Twoim miejscu wywalił jQuery, i użył po prostu fetch().

Mógłbym prosić o przykład jak zastosować fetch() w moim przypadku?

No po prostu wykonaj żądanie HTTP POST z parametrami.

https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch

1 użytkowników online, w tym zalogowanych: 0, gości: 1