Я интегрировал reCaptcha в тестовую форму, чтобы мы могли использовать reCaptcha для остановки ботов. После завершения всего внешнего и серверного кода я могу проверить, успешно ли пользователь выполнил reCatpha - но когда я проверяю администратора reCaptcha, я вижу это сообщение:
"Мы обнаружили, что ваш сайт проверяет решения, принятые reCAPTCHA, менее чем в 50% случаев. Это может указывать на проблему с вашей интеграцией с reCAPTCHA. Для получения дополнительной информации посетите наш сайт разработчика."
Что я делаю не так с моей проверкой на стороне сервера. Я проверил Stackoverflow и другие сайты на наличие PHP-решения, но проблема не устраняется.
Вот мой код урезанный.
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>Contact | Blah Blah</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="https://www.google.com/recaptcha/api.js"></script>
</head>
<body>
<?php
$responseErr = "";
$responseMsg = ""; // for debugging purposes
if($_SERVER["REQUEST_METHOD"] == "POST"){
// reCaptcha server side integraton
$secretKey = "secretkey-blahblahblahblahblahblahblahblahblahblah"; // required
$responseKey = $_POST["g-recaptcha-response"]; // required
$url = "https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$responseKey";
$response = file_get_contents($url);
$responseMsg = "<p>The response is: $response</p>"; // for debugging purposes
$response = json_decode($response);
if($response->success){
// recaptcha validates so continue submitting the form.
$responseErr = '<p><span style="color:green">* reCaptcha verified</span></p>'; // for debugging purposes
} else {
// recaptcha doesn't validate so give the user an error message.
$responseErr = '<p><span style="color:red">* reCaptcha is required</span></p>';
}
}
?>
<form class="recaptchaFrom clearfix" method="post">
<div class="medium-6 columns">
<label>Name</label>
<input type="text" placeholder="Full Name">
</div>
<div class="medium-6 columns">
<label>Email</label>
<input type="email" placeholder="Email">
</div>
<div class="medium-12 columns a-left">
<div class="g-recaptcha m-bottom" data-sitekey="sitekey-blahblahblahblahblahblahblahblahblahblah"></div>
<?php echo $responseMsg; // for debugging purposes ?>
<?php echo $responseErr; ?>
</div>
<div class="medium-12 columns">
<input type="submit" name="submit" class="button" value="Submit">
</div>
</form>
</body>
</html>