Почему мой Recaptcha завершается с ошибкой при отправке?

#php #recaptcha

#php #recaptcha

Вопрос:

Я потратил день на то, чтобы заставить Recaptcha работать на созданном мной сайте. Недавно нам пришлось перенести сайт на другую хостинговую компанию. Теперь он постоянно выходит из строя при отправке формы.

Я создал новый набор ключей и все еще ничего. Я не могу найти какой-либо окончательной поддержки для этой проблемы.

Может ли это быть настройкой PHP или сервера?

Любая помощь была бы очень признательна. Даже если это просто способ получить некоторые данные при сбое.

Я использую демонстрационную форму, которую я нашел для тестирования. Это вторая демонстрация, которую я пробовал, и они оба завершились неудачей при отправке.

Форма

 <html>
  <head>
    <title>Google recapcha demo - Codeforgeek</title>
    <script src='https://www.google.com/recaptcha/api.js' async defer></script>
  </head>
  <body>
    <h1>Google reCAPTHA Demo</h1>
   <form action="captcha-php.php" method="post" enctype="multipart/form-data">
    <input name="sender_name" placeholder="Your Name..."/>
    <input name="sender_email" placeholder="Your email..."/>
    <textarea placeholder="Your Message..." name="sender_message"></textarea>
        <div class="captcha_wrapper">
        <div class="g-recaptcha" data-sitekey="6LdMl0saAAAAAI4PyxOt24481BPzmzTmiU2GGhR6"></div>
    </div>
    <button type="submit" id="send_message">Send Message!</button>
</form>
  </body>
</html>
 

captcha-php.php

 <?php
    $sender_name = stripslashes($_POST["sender_name"]);
    $sender_email = stripslashes($_POST["sender_email"]);
    $sender_message = stripslashes($_POST["sender_message"]);
    $response = $_POST["g-recaptcha-response"];

    $url = 'https://www.google.com/recaptcha/api/siteverify';
    $data = array(
        'secret' => 'I have entered the secret key here',
        'response' => $_POST["g-recaptcha-response"]
    );
    $options = array(
        'http' => array (
            'method' => 'POST',
            'content' => http_build_query($data)
        )
    );
    $context  = stream_context_create($options);
    $verify = file_get_contents($url, false, $context);
    $captcha_success=json_decode($verify);

    if ($captcha_success->success==false) {
        echo "<p>You are a bot! Go away!</p>";
    } else if ($captcha_success->success==true) {
        echo "<p>You are not not a bot!</p>";
    }
?>
 

Комментарии:

1. Возможно, это не имеет значения, но я использую Firefox с блокировщиком рекламы, и recapcha у меня не работает. Вряд ли это та же проблема, что и у вас, но ваши посетители могут столкнуться с этим и не потрудиться найти решение. Может быть хорошая альтернатива, позволяющая вашим посетителям доказать, что они не робот. Вы пробовали honeypot ? Создайте свой собственный, не копируйте существующий код!

2. К сожалению, мой клиент запросил Recaptha.

3. Что не удается? Сценарий? Проверка?

4. Это хороший вопрос. Я думал, что это проверка, так как я получаю текст «Вы бот!». Но, когда я проверяю статистику своей учетной записи Recaptcha, он показывает все проходы и никаких сбоев.