Para que nos vamos complicar creando un captcha propio para nuestros formularios si podemos usar de forma totalmente gratuita el API de reCAPTCHA, uno de los mejores que podemos encontrar y del que ya hable en este blog en alguna ocasión de el.
Lo único que necesitarás para poder usar el API de reCAPTCHA es registrarse, de esta forma tendrás a tu disposición en el panel la Public Key y la Private Key que necesitaremos usar para llamar a las diferentes funciones.
En Google Code encontrareis diversas opciones para descargar plugins para WordPress, phpBB … que nos permitirán usar esta capcha con tan solo instalarlas en el CMS o librerías para diferentes lenguajes, en este caso voy usar PHP para los ejemplos.
En primer lugar debemos incluir el fichero recaptchalib.php y declaramos los valores que tenemos del registro la Public Key y la Private Key de la siguiente forma:
require_once('recaptchalib.php'); $publickey = "publickeyxxxxxxx"; $privatekey = "privatekeyxxxxxxxx"; $error = null; |
En segundo lugar para añadir el CAPTCHA a nuestro formulario, para ello deberemos poner lo siguiente entre las etiquetas <form>y</form>:
echo recaptcha_get_html($publickey, $error); |
Para finalizar deberemos comprobar que el CAPTCHA ha sido escrita correctamente, esto lo haremos en el fichero donde recibamos el formulario con el siguiente código:
$re_ip = $_SERVER["REMOTE_ADDR"]; $re_challenge = $_POST["recaptcha_challenge_field"]; $re_response = $_POST["recaptcha_response_field"]; $re_valid = recaptcha_check_answer($privatekey, $re_ip, $re_challenge, $re_response); if ($re_valid->is_valid) { //Seguimos con el proceso normal, guardar en la base de datos, enviar por email ... } else { $error = $resp->error; //nos devuelve el error que se produjese. } |