#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, он показывает все проходы и никаких сбоев.