Este es el capitulo 17 del Curso de PHP y MySQL. En este capitulo aprenderemos a agregar el sistema de Captcha de Google (reCAPTCHA) a un formulario en PHP para determinar cuándo el usuario es o no humano.
Requisitos:
- Servidor Web, PHP y MySQL. Ver Capitulo 1
- reCAPTCHA. Registrar Captcha
Para registrar un nuevo sitio es necesario iniciar sesión en Google. Ingresamos la Etiqueta y los dominios en donde utilizaremos este Captcha, Guardamos el formulario.
Al guardar la información nos envía la Clave del sitio, la Clave secreta y el código para implementar:
Ahora creamos un script en PHP para agregar el Captcha a un formulario:
index.php
<?php if(!empty($_POST)){ $name = $_POST['name']; $password = $_POST['password']; $captcha = $_POST['g-recaptcha-response']; $secret = 'aqui va la clave secreta'; if(!$captcha){ echo "Por favor verifica el captcha"; } else { $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$captcha"); $arr = json_decode($response, TRUE); if($arr['success']) { echo '<h2>Thanks</h2>'; } else { echo '<h3>Error al comprobar Captcha </h3>'; } } } ?> <html> <head> <title>Google Recapcha</title> <script src='https://www.google.com/recaptcha/api.js'></script> </head> <body> <form id="form" action="<?php $_SERVER['PHP_SELF']; ?>" method="POST"> Usuario: <input type="text" name="name"> <br><br> Password: <input type="password" name="password"> <br><br> <div class="g-recaptcha" data-sitekey="aqui va la clave del sitio"></div> <br> <input type="submit" name="login" value="Login"> </form> </body> </html>
Y el resultado es el siguiente:
Ademas de verificar que el usuario haya completado el Captcha también validamos que sea correcto enviando los datos a Google para su revisión y autorización.