Configurar reCAPTCHA con PHP
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. } |