В вашем коде две ошибки:
1.Вам нужен новый токен при каждой загрузке
Вы можете обновить reCAPTCHA, вызывая reCAPTCHA API при каждой загрузке страницы.
Каждый токен ответа пользователя reCAPTCHA можетбыть проверенным только один раз.Если вам нужен новый токен, вам нужно вызвать grecaptcha.reset (), чтобы попросить конечного пользователя снова проверить с помощью reCAPTCHA.
grecaptcha.reset (opt_widget_id) Сбрасывает виджет reCAPTCHA.opt_widget_id Необязательный идентификатор виджета, по умолчанию используется первый созданный виджет, если он не указан.
<script type="text/javascript">
$(document).ready(function() {
grecaptcha.reset();
});
</script>
2.Вы не проверяете ответ reCAPTCHA
Вам нужно POST следующую информацию: https://www.google.com/recaptcha/api/siteverify
МЕТОД: POST
POST Описание параметра
секрет Требуется.Общий ключ между вашим сайтом и reCAPTCHA.
ответ Обязательно.Маркер ответа пользователя, предоставленный клиентской интеграцией reCAPTCHA на вашем сайте.
remoteip Дополнительно.IP-адрес пользователя.
Когда вы разместите 2-3 части на веб-сайте, вы получите объект JSON обратно.В этом объекте у него будет ключ «успех».Если это так, тогда они проверяются.
«Успех» должен быть в вашем операторе PHP if.
Источники: Запрос API JS-API Проверочный ответ