Как установить Google reCAPTCHA 2.0 на сайт?

Сайт на движке WordPress последней версии. Не получается установить Google reCAPTCHA 2.0 на сайт.
Секретный ключ на сайте Google получил для домена.
Далее добавил перед тегом :
<script src='https://www.google.com/recaptcha/api.js'></script>


На сайте в шапке есть простая форма обратной связи.
В конце объекта я добавил код от Google, в итоге получилось:
<form action="/wp-content/themes/theme1971/php/mail.php" method="post">
			<a href="#close" title="Закрыть" class="close">X</a>
<p>Форма обратной связи</p>
<div class="left">
			<input type="text" required name="name" placeholder="Имя *"  /><br/>
		    <input type="text" required name="phone" placeholder="Телефон *" /><br/>
			<input type="text" name="email" placeholder="E-mail" /><br/>
			</div>
		<div class="right">
		<textarea placeholder="Сообщение"  name="text_comment"></textarea>
		</div>
		<div class="g-recaptcha" data-sitekey="6LccRIQUAAAAAJ5BpkyK5K9HgnP2c1BGkAqqSr7x"></div>
		<input type="submit" value="Отправить" />
			</form>

Далее перед закрывающимся тегом body в footer.php добавил php код:
<?php
if (isset($_POST['g-recaptcha-response'])) {
    $url_to_google_api = "https://www.google.com/recaptcha/api/siteverify";
    $secret_key = '6LccRIQUAAAAAJ5BpkyK5K9HgnP2c1BGkAqqSr7x';
    $query = $url_to_google_api . '?secret=' . $secret_key . '&response=' . $_POST['g-recaptcha-response'] . '&remoteip=' . $_SERVER['REMOTE_ADDR'];
    $data = json_decode(file_get_contents($query));
    if ($data->success) {
        // Продолжаем работать с данными для авторизации из POST массива
    } else {
        exit('Извините но похоже вы робот \(0_0)/');
    }
} else {
    exit('Вы не прошли валидацию reCaptcha');
}
?>

Но проверка не работает. Форма отправляется даже если пользователь не ставил флажок "Я не робот" в капче от Google.
  • Вопрос задан
  • 1486 просмотров
Решения вопроса 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Но проверка не работает

Так проверку нужно добавлять в то место, где у Вас обрабатываются данные с формы, т.е. в /wp-content/themes/theme1971/php/mail.php
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы