Как я могу реализовать Google Recaptcha v3 в форме PHP?

Я хотел бы вставить контактную форму новой версии (V3) Recaptcha.

Я искал разные решения, но они показывают только часть кода, они неполные или я получаю ошибку, и большинство найденных решений очень сложны для чего-то такого простого, и я не понимаю код.

3

Решение

Я искал этот и другие форумы для реализации новой версии ReCaptcha (V3) в моих формах.
Мне нужно было знать, как:

  • Вставьте это с JS
  • Как проверить это с помощью PHP
  • Какие новые поля были нужны в моей форме.

Я не нашел ни одного простого решения, которое показывало бы мне все эти моменты, или оно было слишком сложным для тех, кто просто хотел вставить контактную форму на своем веб-сайте.

В конце, взяв несколько частей кода нескольких решений, я использую простой и многократно используемый код, в который вам нужно только вставить соответствующие ключи.

Вот.

Основной код JS

<script src="https://www.google.com/recaptcha/api.js?render=your reCAPTCHA site key here"></script>
<script>
grecaptcha.ready(function() {
// do request for recaptcha token
// response is promise with passed token
grecaptcha.execute('your reCAPTCHA site key here', {action:'validate_captcha'})
.then(function(token) {
// add token value to form
document.getElementById('g-recaptcha-response').value = token;
});
});
</script>

Основной HTML-код

<form id="form_id" method="post" action="your_action.php">
<input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response">
<input type="hidden" name="action" value="validate_captcha">
.... your fields
</form>

Основной код PHP

    if(isset($_POST['g-recaptcha-response'])){
$captcha=$_POST['g-recaptcha-response'];
}
else
$captcha = false;

if(!$captcha){
//Do something with error
}
else{
$secret = 'Your secret key here';
$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=
.$secret.&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
if($response.success==false)
{
//Do something with error
}
}
... The Captcha is valid you can continue with the rest of your code

Вам нужно только добавить свои ключи, больше никаких изменений не требуется:

    src="https://www.google.com/recaptcha/api.js?render=your reCAPTCHA site key here"grecaptcha.execute('your reCAPTCHA site key here'

а также

    $secret = 'Your secret key here';

Очевидно, что вы также должны изменить действие формы, в этом примере:

    action = "your_action.php"
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]