Я пытаюсь имплантировать reCaptcha V2 от Google на моем сайте (разработан на PHP и Wordpress).
Я пытаюсь проверить, проверял ли пользователь эту капчу перед отправкой.
И вот мое подтверждение:
<?php
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])){
$privatekey = $secret;
$captcha = $_POST['g-recaptcha-response'];
$url = 'https://www.google.com/recaptcha/api/siteverify';
$data = array(
'secret' => $privatekey,
'response' => $captcha,
'remoteip' => $_SERVER['REMOTE_ADDR']
);
$curlConfig = array(
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => $data
);
$ch = curl_init();
curl_setopt_array($ch, $curlConfig);
$response = curl_exec($ch);
curl_close($ch);
$jsonResponse = json_decode($response);
if ($jsonResponse->success == true) {
$succMsg = 'Your contact request have submitted successfully.';
echo "<script>alert(\"OK\")</script>";
}
else {
$errMsg = 'Robot verification failed, please try again.';
echo "<script>alert(\"KO ROBOT\")</script>";
}
}
else{
$errMsg = 'Please click on the reCAPTCHA box.';
echo "<script>alert(\"KO CLICK ON BOX\")</script>";
}
?>
Когда я перезагружаю страницу, или когда я отправляю без проверенной капчи, или когда я проверял капчу, она всегда отображает: "KO ROBOT"
Я пробовал также с "file_get_contents"
вместо curl, но у меня было предупреждение об ошибке SSL.
Спасибо.
ОБНОВЛЕНИЕ:
Когда я делаю это:
var_dump($jsonResponse);
У меня есть это на моей странице:
object (stdClass) # 4028 (2) {["success"] => bool (false) ["коды ошибок"] => array (1) {[0] => string (20) "invalid-input-secret "}}
ОБНОВЛЕНИЕ 2:
Теперь у меня есть это, после проверки моего секретного ключа:
object (stdClass) # 4028(2) {["success"] => bool (false) ["коды ошибок"] => array (1) {[0] => string (20) "timeout-or-duplicate"}}