У меня возникла проблема с реализацией reCaptcha на моем веб-сайте.
Я последовал за учебником здесь: http://code.google.com/apis/recaptcha/docs/php.html и реализовал только базовую reCaptcha с сообщением об ошибке.
Ниже приведен какой-то пользовательский код, который я использую в файле, который отправляется форме:
if (!$resp->isValid) { $_SESSION['badLoginCount'] += 1; $_SESSION['incorrect-captcha'] = true; $_SESSION['incorrect-captcha-error'] = $resp->error; header ('Location: ../../signin.php'); exit; }
Если пользователь вводит неверный reCaptcha, перенаправление страницы и ошибка отображаются как ожидалось. Однако, когда пользователь вводит правильную reCaptcha, isValid по-прежнему вычисляет FALSE и запускает эту ветвь, однако ошибка $ resp-> ничего не содержит, и это почти невозможно отладить.
Кто-нибудь сталкивался с этим раньше? Я ничего не могу найти в Интернете.
Быстрое и взломанное обходное решение будет проверять, является ли $resp->error
пустой.
if (!empty($resp->error)) { $_SESSION['badLoginCount'] += 1; $_SESSION['incorrect-captcha'] = true; $_SESSION['incorrect-captcha-error'] = $resp->error; header ('Location: ../../signin.php'); exit; }