Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17587
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como fazer a validação PHP do reCAPTCHA do Google

23-04-2015 06:58

Nesse post vou estar mostrando como fazer a validação do reCAPTCHA do Google através da linguagem PHP.

Para quem não conhece o reCAPTCHA, trata-se de um validador do formulário, por exemplo, um campo extra que colocamos no formulário para evitar que robôs ou spammer usem o formulário para envio de spam no nosso site.

https://www.google.com/recaptcha/intro/index.html
* Você precisa ter um site e uma conta do Google para usar.

Depois que você clicar no link para obter o reCAPTCHA "Get reCAPTCHA no topo do link acima", você vai receber alguns códigos.

Você deve receber o seguinte:

<script src='https://www.google.com/recaptcha/api.js'></script>

Que você coloca antes de fechar a tag head "</head>"

Uma div que é o próprio reCAPTCHA, ou seja, vai colocar essa div onde o validador deve aparecer.

<div class="g-recaptcha" data-sitekey="..

Na página que você vai obter esses dados vai ter as seguintes informações em uma tabela na linha
Step 2: Server side integration

A tabela mostra com seus respectivos valores na direita.

URL: https://www.google.com/recaptcha/api/siteverify
secret(required)
response(required)
remoteip


O que acontece é que você tem que enviar esses valores "secret, response e remoteip" para a URL acima.

Essa URL vai retornar os seguintes resultados:

{ "success": true } = quando a validação for verdadeira
{ "success": false } = quando a validação for falsa

Para enviar os dados para o reCAPTCHA você vai precisar usar a função PHP file_get_contents.

Então resumindo, basicamente precisamos ter o seguinte:

<html> <head> <script src='https://www.google.com/recaptcha/api.js'></script> </head> <body> <form> <!-- DIV DO RECAPTCHA ABAIXO //--> </form> </body> </html>

Na página que vai receber os dados do formulário precisamos ter o seguinte:

<?php if(isset($_POST)) { $resultado = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=OSECRET&response='.$_POST['g-recaptcha-response'].'&remoteip='.$_SERVER['REMOTE_ADDR']); echo $resultado; $obj = json_decode($resultado); if($obj->{'success'}==false) { echo "errado"; // O RECAPTCHA NÃO FOI VALIDADO, NÃO ENVIA } else { echo "correto"; // DEU TUDO CERTO, ENVIA OS DADOS } } ?>

Na linha acima, onde está OSECRET troque pelo secret(required).
Esse valor secret(required) é o código secreto que você recebe quando cria o recaptcha.
É mostrado na mesma página onde você pega a div do recaptcha.
6
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado