Como integrar reCAPTCHA en tu sitio web
- Debemos crear nuestra API, para eso vamos a https://www.google.com/recaptcha/admin y nos logueamos con nuestra cuenta de Gmail (de otra manera no podrás crearlo).
- Completamos el campo etiqueta con algún texto que nos recuerde a que se refiere.
- Seleccionamos el tipo reCAPTCHA V2 y en Dominios ponemos la url que vamos a insertar nuestro reCaptcha.
Aceptamos los Términos de Servicio y click en «Registro»
Si el registro sale exitoso nos debería mostrar la siguiente pantalla:
4. Ahora realizamos el Paso 1 (integración del lado del cliente) y pegamos el siguiente fragmento antes de la etiqueta de cierre </head> en nuestro archivo que vamos a mostrar el reCaptcha:
<script src='https://www.google.com/recaptcha/api.js'></script>
Y dentro del formulario antes de la etiqueta <input /> insertamos:
<div class="g-recaptcha" data-sitekey="acá insertamos nuestra clave secreta"></div>
5. Último paso: debemos crear nuestro archivo que recibe los datos del formulario y controla que todo este ok:
<?php if (isset($_POST["g-recaptcha-response"]) && $_POST["g-recaptcha-response"]) { $secret = "acá insertamos nuestra clave secreta"; $ip = $_SERVER["REMOTE_ADDR"]; $captcha = $_POST["g-recaptcha-response"]; $result = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$captcha&remoteip=$ip"); $array = json_decode($result, TRUE); if ($array["success"]) { $remitente = $_POST['email']; $destinatario = 'info@misitio.com'; // en esta línea va el mail del destinatario, conviene que se una cuenta de dominio, con Gmail llega a spam. $asunto = 'Consulta'; // acá se puede modificar el asunto del mail include 'confirma-contacto.php'; //se debe crear un html que confirma el envío $cuerpo = "Nombre y Apellido: " . $_POST["nombre"] . "\r\n"; $cuerpo .= "Email: " . $_POST["email"] . "\r\n"; $cuerpo .= "Consulta: " . $_POST["consulta"] . "\r\n"; $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/plain; charset=utf-8\n"; $headers .= "X-Priority: 3\n"; $headers .= "X-MSMail-Priority: Normal\n"; $headers .= "X-Mailer: php\n"; $headers .= "From: \"".$_POST['nombre']." ".$_POST['apellido']."\" <".$remitente.">\n"; mail($destinatario, $asunto, $cuerpo, $headers); } }else{ echo "<script type=\"text/javascript\"> alert('Seleccione la casilla de verificación'); history.go(-1); </script>"; exit; } ?>
Listo! Ya tenemos nuestro reCAPTCHA funcionando en nuestro sitio web.
Saludos!