Я недавно переместил серверы, и с тех пор, как моя пересылка не прошла проверку на стороне сервера.Я дважды проверил ключ сайта и секретный ключ, и они совпадают.
function captchaVerify() {
$privateKey = "matches recaptcha dashboard";
$response;
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])) {
$response = $_POST['g-recaptcha-response'];
} else {
echo "bad POST response ";
echo $response;
return false;
}
if (isset($response) && !empty($response)) {
$url = 'https://www.google.com/recaptcha/api/siteverify';
$data = [
'secret' => $privateKey,
'response' => $response
];
$options = [
'http' => [
'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) {
//fails here
echo "success false ";
echo $response;
return false;
} else {
return true;
}
} else {
echo "empty or not set ";
echo $response;
return false;
}
}
Редактировать:
var_dump($response)
выводит строку из 334 символов чисел и букв в последовательности
var_dump($data)
выводит секретный ключ, соответствующий $ privateKey, совпадающий с консолью reCAPTCHA, за которым следует отклик gobbledygook
var_dump($context)
выводит ресурс (13)
var_dump($verify)
выводит BOOL (false)
var_dump($captcha_success)
выходы NULL
Я не уверен, где еще устранить неполадки