Как проверить Recaptcha в этом случае? - PullRequest
0 голосов
/ 26 ноября 2018

на моем веб-сайте есть как recaptcha v1, так и общий метод captcha для проверки, затем я решил обновить recaptcha v1 до recaptcha v2, поэтому я разместил все файлы из Google ReCaptcha git и разместил на моем сайте.Итак, капча отображается сейчас, но каждый раз, когда я нажимаю кнопку отправки, она отображает недействительную капчу.

В настоящее время в форме регистрации пользователя есть этот код для проверки recaptcha

if(!$captcha->is_valid()) {
    $_SESSION['error'][] = $language->global->error_message->invalid_captcha;
}

, и я считаю, что источникпроблема из этой части кода

  /* Custom valid function for both the normal captcha and the recaptcha */

 function is_valid() {

        if($this->recaptcha) {

             $recaptcha = new \ReCaptcha\ReCaptcha($this->recaptcha_private_key);
            $response = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);

            return ($response->is_valid);

        } else {

            return ($_POST['captcha'] == $_SESSION['captcha']);

        }
    }

1 Ответ

0 голосов
/ 12 декабря 2018

Я нашел решение

/* Custom valid function for both the normal captcha and the recaptcha */
function is_valid() {

    if($this->recaptcha) {

        $recaptcha = new \ReCaptcha\ReCaptcha($this->recaptcha_private_key);
        $resp = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);

        return ($resp->isSuccess());

    } else {

        return ($_POST['captcha'] == $_SESSION['captcha']);

    }
}
...