Ключ reCAPTCHA от Google привязывается к конкретной форме, а не к нескольким формам одновременно. Это связано с тем, что ключ reCAPTCHA используется для проверки подлинности пользователя и защиты от автоматических роботов, и каждая форма должна иметь свой уникальный ключ.
Однако существует несколько способов привязки ключа reCAPTCHA к нескольким формам. Один из способов - использование одного и того же ключа reCAPTCHA на всех формах, но это может привести к тому, что капча может быть обойдена на одной форме, и тогда она станет уязвимой на всех остальных формах.
Более безопасный способ - генерировать уникальный ключ reCAPTCHA для каждой формы. Это можно сделать, создав отдельный ключ для каждой формы через панель управления reCAPTCHA на сайте Google. После генерации ключа полученные данные, такие как публичный и приватный ключи, можно использовать на каждой форме.
Пример использования ключей reCAPTCHA в PHP:
// Функция для отображения reCAPTCHA function displayRecaptcha($sitekey) { echo '<div class="g-recaptcha" data-sitekey="' . $sitekey . '"></div>'; } // Проверка reCAPTCHA function verifyRecaptcha($sitekey, $secretkey, $response) { $url = 'https://www.google.com/recaptcha/api/siteverify'; $data = array( 'secret' => $secretkey, 'response' => $response, 'remoteip' => $_SERVER['REMOTE_ADDR'] ); $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencodedrn", 'method' => 'POST', 'content' => http_build_query($data) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); if ($result === FALSE) { // Обработка ошибки } $response = json_decode($result, true); return $response['success']; } // Пример использования $sitekey = 'YOUR_SITE_KEY'; $secretkey = 'YOUR_SECRET_KEY'; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $recaptcha_response = $_POST['g-recaptcha-response']; if (verifyRecaptcha($sitekey, $secretkey, $recaptcha_response)) { // Реагировать на успешную проверку reCAPTCHA } else { // Реагировать на неудачную проверку reCAPTCHA } } // Отображение reCAPTCHA на форме displayRecaptcha($sitekey);
В данном примере функция displayRecaptcha()
отображает reCAPTCHA на форме, а функция verifyRecaptcha()
проверяет ответ пользователя и возвращает результат - успешно или неуспешно пройдена проверка reCAPTCHA. Ключи sitekey
и secretkey
передаются в соответствующие функции в качестве параметров.
Таким образом, каждая форма может иметь свой уникальный ключ reCAPTCHA, что обеспечивает безопасность и надежность защиты.