Идея решения состоит в том, чтобы переместить обработку формы и recaptcha на вторичную страницу для обработки. />
Код: Выделить всё
< /code>
Проблема в том, как запросить этот токен на странице обработки на стороне сервера? Вот код, используемый на странице формы клиента. Мне нужно каким -то образом регенерировать значение токена, чтобы применить как: < /p>
$ recaptcha_response < /p>
Вот рабочая версия на странице формы. Легко удалить требование при публикации токена со страницы формы, просто не уверен, как регенерировать токен для использования на странице на стороне сервера. < /P>
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['recaptcha_response'])) {
// Build POST request:
$recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
$recaptcha_secret = RECAPTCHA_SECRET_KEY;
$recaptcha_response = $_POST['recaptcha_response'];
$remoteip = $_SERVER['REMOTE_ADDR'];
// Make and decode POST request:
$recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response. '&remoteip='.$remoteip);
$recaptcha = json_decode($recaptcha);
// Take action based on the score returned:
if ($recaptcha->score >= 0.5) {
сделает инициализацию Recaptcha до отправки задержки проблемы срока, так как это, кажется, является вариантом:
https://developers.google.com/recaptcha/docs/v3
. grecaptcha.execute на действие или когда страница загружается "
Подробнее здесь: https://stackoverflow.com/questions/552 ... ha-timeout
Мобильная версия