Usando o Google reCAPTCHA em formulários de seu site com PHP
Você deseja integrar o Google reCAPTCHA ao seu site? O Google fornece um serviço reCAPTCHA que adiciona a caixa de seleção "Não sou um robô" em seu formulário para validar os usuários. Este reCAPTCHA protege seus formulários contra bots. Neste artigo, estudamos como adicionar e validar o reCAPTCHA do Google em um site usando PHP .
Proteger seu banco de dados contra spams é uma parte crucial de qualquer site. Hoje em dia, muitos bots enviam dados falsos continuamente por meio de formulários de sites. Ao adicionar reCAPTCHA ao site, isso nos ajudará a impedir registros de spam, comentários, idiomas abusivos, etc.
O reCAPTCHA do Google foi desenvolvido para descobrir se uma solicitação recebida é de um ser humano real ou de um bot.
Dito isso, vamos ver um guia passo a passo sobre como adicionar e validar o reCAPTCHA em seu site.
Nota: No passado, escrevemos um artigo sobre como adicionar reCAPTCHA aos formulários do Laravel. Se alguém deseja integrar o reCAPTCHA no Laravel, leia o artigo Adicionar reCAPTCHA do Google aos Formulários do Laravel.
Registre o site e obtenha chaves de API
Em primeiro lugar, você precisa registrar seu site aqui – https://www.google.com/recaptcha/admin. Escolha as opções para reCAPTCHA v2 e a caixa de seleção “Não sou um robô", conforme mostrado na captura de tela.
Se você pretende testá-lo em um servidor local, use a string ‘localhost’ no campo de domínio.
Ao preencher o formulário acima, você obterá a chave do site e a chave secreta.
Integrar Google reCAPTCHA
Você está pronto com suas chaves de API do reCAPTCHA. Em seguida, instale esta biblioteca GitHub que permite adicionar e validar o reCAPTCHA. A maneira recomendada de instalar esta biblioteca é através do Composer.
Abra o terminal no diretório raiz do seu projeto e execute o comando:
composer require anhskohbo/no-captcha
Depois de instalar a biblioteca, podemos adicionar o reCAPTCHA em nosso formulário usando os métodos fornecidos na biblioteca.
Por exemplo, vamos criar um formulário com campos como e-mail, reCAPTCHA e um botão de envio.
<?php
require_once "vendor/autoload.php";
$secret = 'YOUR_SECRET_KEY';
$sitekey = 'YOUR_SITE_KEY';
$captcha = new AnhskohboNoCaptchaNoCaptcha($secret, $sitekey);
?>
<form method="POST">
<p>
<input type="email" class="form-control" placeholder="Enter email address">
</p>
<?php echo $captcha->display(); ?>
<button type="submit" name="submit" class="btn btn-primary">Submit</button>
</form>
<?php echo $captcha->renderJs(); ?>
Certifique-se de substituir os marcadores pelos valores reais. No código acima, a função $captcha->display()
exibe a caixa de seleção “Não sou um robô”. O método $captcha->renderJs()
inclui o arquivo JS necessário de reCAPTCHA.
Agora, para validar o usuário, escreva o código abaixo no envio do formulário.
if (isset($_POST['submit'])) {
if($captcha->verifyResponse($_POST['g-recaptcha-response'])) {
//proceed further
} else {
echo "Incorrect captcha";
}
}
Portanto, nosso código final é o seguinte.
<?php
require_once "vendor/autoload.php";
$secret = 'YOUR_SECRET_KEY';
$sitekey = 'YOUR_SITE_KEY';
$captcha = new AnhskohboNoCaptchaNoCaptcha($secret, $sitekey);
if (isset($_POST['submit'])) {
if($captcha->verifyResponse($_POST['g-recaptcha-response'])) {
//proceed further
} else {
echo "Incorrect captcha";
}
}
?>
<form method="POST">
<p>
<input type="email" class="form-control" placeholder="Enter email address">
</p>
<?php echo $captcha->display(); ?>
<button type="submit" name="submit" class="btn btn-primary">Submit</button>
</form>
<?php echo $captcha->renderJs(); ?>
É isso! Espero que você saiba como integrar o Google reCAPTCHA aos formulários do seu site. Por favor, compartilhe seus pensamentos e sugestões na seção de comentários abaixo.
Artigos relacionados
- Valide o reCAPTCHA do Google usando JavaScript
- Speech-To-Text usando Amazon Transcribe em PHP
- Compactar imagens para site usando reSmush.it em PHP