2380

reCAPTCHA Google

Olá Dev´s tudo bem?

Hoje trago uma forma fácil e útil de proteger seus dados na hora de enviar um formulário de ataques de BOTs com um reCAPTCHA do Google de implementação muito tranquila de implementação. Vama lá...

Acesse o site do reCAPTCHA do Google clicando aqui. Acesse com sua conta do Google e será redirecionado diretamente para criar uma APP.Conforme imagem abaixo:

reCAPTCHA Google

Esta disponivel 3 opções para criar seu reCAPTCHA.

  • reCAPTCHA V2 - Apenas um botão confirmado se não é um robô;
  • invisible reCAPTCHA - Cria apenas um botão e a função reCAPTCHA fica oculta (implementação com JavaScript);
  • reCAPTCHA Android - Para aplicações Android.

No nosso exemplo vamos utilizar a opção reCAPTCHA V2. Informa no nome da sua APP e clique em Register. Copie os valores de Site Key e Secret Key e cole na classe reCAPTCHA.class.php.

<?php
/**
* reCAPTXHA [ HELPER ]
* Classe para criar um campo de validação recaptcha
* @copyright (c) 2018, Davson N. Santos - DAVTECH - SOLUÇÕES INTELIGENTES
*/
class reCAPTCHA {
private $SiteKey = <SITE_KEY>;
private $SecretKey = <SECRET_KEY>;
private $JS = "<script src='https://www.google.com/recaptcha/api.js'></script>";

public function __construct() {
echo $this->JS;
}
public function getreCAPTCHAweb() {
echo "<div class='g-recaptcha' data-sitekey='{$this->SiteKey}'></div>";
}


public function getUrl($Param) {
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POST => TRUE,
CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify',
CURLOPT_POSTFIELDS => [
'secret' => $this->SecretKey,
'response' => $Param['g-recaptcha-response'],
'remoteip' => $_SERVER['REMOTE_ADDR']
]
]);

$response = json_decode(curl_exec($curl));
curl_close($curl);
return $response;
}
}

Utilizando a classe:

<form action="process.php" method="post">
<input type="hidden" name="origin" value="web"/>
<div>
<?php
$reCaptcha->getreCAPTCHAweb();
?>
<br>
<input type="submit" value="Confirmar" class="btn btn-danger btn-sm">
</div>
</form>

o arquivo "process.php":

$POST = filter_input_array(INPUT_POST, FILTER_DEFAULT);
$Dados['g-recaptcha-response'] = $POST['g-recaptcha-response'];
$retorno = $reCaptcha->getUrl($Dados);
if ($retorno->success == true):
    echo "Valido":
else:
    echo "Não Valido";
endif;

Clique aqui e veja o script funcionado ou baixe o exemplo


ou