reCAPTCHA es una extensión de la prueba CAPTCHA que se utiliza para reconocer texto presente en imágenes. Emplea por tanto la prueba desafÃo-respuesta utilizada en computación para determinar cuándo el usuario es o no humano para, a su vez, mejorar la digitalización de textos.
Dicho de otra manera, es un sistema que se encarga de generar una imagen con un texto confuso, distorsionado, para que el usuario lo resuelva y asà determinar si es una persona y no un bot.
El reCAPTCHA es un sistema libre anti-bot con soporte por parte de google y a diferencia del CAPTCHA coloca dos palabras en lugar de una.
Este sistema lo podemos integrar en nuestros proyectos a través de la API o con la librerÃa que suministra.
Usando la librerÃa:
A.- lo primero que hay que hacer es descargar la ultima versión.
B.- luego debemos crear la cuenta, obtendremos al culminar, la PublicKey y PrivateKey que son claves que representan a tu cuenta.
C.- tomando en cuenta que tenemos un archivo index.php (archivo de ejemplo) y la librerÃa recaptchalib.php en la misma carpeta, procedemos a hacer lo siguiente:
1.- incluimos la librerÃa:
2.- definimos las key dentro del sistema:
3.- incluimos dentro de un formulario el código necesario para imprimir la imagen del reCaptcha:
Ahà le estamos diciendo que envié los datos para verificarlos al archivo verificar.php, pero es evidente que podemos enviarlos al mismo index.php y asà mantener en el, todo el código correspondiente, además que la función recaptcha_get_html acepta un segundo parámetro que define si se ha producido algún error al intentar resolver el reCaptcha y podemos mostrarlo de una vez.
4.-la validación:
- recaptcha_check_answer devuelve un objeto que representa si el usuario completó con éxito el desafÃo.
- $resp->is_valid devuelve true si el reCaptcha se completó correctamente.
- $resp->error devuelve un mensaje de error que puede ser pasado por parámetro a la función recaptcha_get_html y que solo se produce si $resp->is_valid devuelve false, dicho de otra manera, si el usuario introduce mal el código de la imagen, se genera un mensaje de error que podemos mostrar luego.
- Personalizando el reCaptcha
podemos llamar a la función RecaptchaOptions desde Javascript y pasarle algunos valores por parámetro para conseguir personalizarlo.
1.- lng -> permite cambiar el idioma, puede tomar varios valores:
2.- theme -> permite cambiar la apariencia, los valores pueden ser (red, white, blackglass, clean, custom).
3.- custom_translations -> por defecto null, permite especificar traducciones personalizadas.
4.- custom_theme_widget -> por defecto null, permite asignar un estilo nuevo para el reCaptcha, hay que señalar el id del elemento div contenedor y definir el CSS correspondiente.
5.- tabindex -> permite establecer la posición de focus del elemento.
ejemplo:
Aquà te dejo el código del archivo de ejemplo (index.php):
Referencias:
Documentación
Descarga
B.- luego debemos crear la cuenta, obtendremos al culminar, la PublicKey y PrivateKey que son claves que representan a tu cuenta.
C.- tomando en cuenta que tenemos un archivo index.php (archivo de ejemplo) y la librerÃa recaptchalib.php en la misma carpeta, procedemos a hacer lo siguiente:
1.- incluimos la librerÃa:
require_once('recaptchalib.php');
2.- definimos las key dentro del sistema:
define("PUBLICKEY","aqui_tu_key_publica"); define("PRIVATEKEY","aqui_tu_key_privada");
3.- incluimos dentro de un formulario el código necesario para imprimir la imagen del reCaptcha:
<form method="post" action="verificar.php">
<?php echo recaptcha_get_html(PUBLICKEY
); ?>
<p><input type="submit" value="Aceptar" /></p>
</form>
Ahà le estamos diciendo que envié los datos para verificarlos al archivo verificar.php, pero es evidente que podemos enviarlos al mismo index.php y asà mantener en el, todo el código correspondiente, además que la función recaptcha_get_html acepta un segundo parámetro que define si se ha producido algún error al intentar resolver el reCaptcha y podemos mostrarlo de una vez.
4.-la validación:
Clic aquà para mostrar u ocultar el código
if ($_POST["recaptcha_response_field"]) { $resp = recaptcha_check_answer ( PRIVATEKEY, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"] ); // si el codigo es valido, ejecutamos el procedimiento que corresponda if ($resp->is_valid) { // continuamos el procesamiento del formulario // aqui tu code echo "¡Excelente, has resuelto la imágen!"; exit; } else // sino, indicamos que hubo error $error = $resp->error; }
- recaptcha_check_answer devuelve un objeto que representa si el usuario completó con éxito el desafÃo.
- $resp->is_valid devuelve true si el reCaptcha se completó correctamente.
- $resp->error devuelve un mensaje de error que puede ser pasado por parámetro a la función recaptcha_get_html y que solo se produce si $resp->is_valid devuelve false, dicho de otra manera, si el usuario introduce mal el código de la imagen, se genera un mensaje de error que podemos mostrar luego.
- Personalizando el reCaptcha
podemos llamar a la función RecaptchaOptions desde Javascript y pasarle algunos valores por parámetro para conseguir personalizarlo.
1.- lng -> permite cambiar el idioma, puede tomar varios valores:
en --> ingles (valor por defecto)
nl --> holandés
fr --> francés
de --> alemán
pt --> portugués
ru --> ruso
es --> español
tr --> turco
nl --> holandés
fr --> francés
de --> alemán
pt --> portugués
ru --> ruso
es --> español
tr --> turco
2.- theme -> permite cambiar la apariencia, los valores pueden ser (red, white, blackglass, clean, custom).
3.- custom_translations -> por defecto null, permite especificar traducciones personalizadas.
4.- custom_theme_widget -> por defecto null, permite asignar un estilo nuevo para el reCaptcha, hay que señalar el id del elemento div contenedor y definir el CSS correspondiente.
5.- tabindex -> permite establecer la posición de focus del elemento.
ejemplo:
<script type="text/javascript" > var RecaptchaOptions = { theme : 'blackglass', lang: 'es', tabindex : 2 }; </script>
Aquà te dejo el código del archivo de ejemplo (index.php):
Clic aquà para mostrar u ocultar el código
<?php // incluimos la liberia require_once('recaptchalib.php'); // definimos las constantes para las keys define("PUBLICKEY","aqui_tu_key_publica"); define("PRIVATEKEY","aqui_tu_key_privada"); // inicializamos $resp = null; $error = null; // verificamos si se ha solucionado el reCaptcha if ($_POST["recaptcha_response_field"]) { $resp = recaptcha_check_answer ( PRIVATEKEY, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"] ); // si el codigo es valido, ejecutamos el procedimiento que corresponda if ($resp->is_valid) { // .... // aqui tu code echo "¡Excelente, has resuelto la imágen!"; exit; } else // sino, indicamos que hubo error $error = $resp->error; } ?> <html> <html> <title>Ejemplo del uso de reCAPTCHA</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </html> <body> <form action="" method="post"> <?php // imprimimos la imagen reCaptcha (se mostrara el error si lo hay) echo recaptcha_get_html(PUBLICKEY, $error); ?> <p><input type="submit" value="Aceptar" /></p> </form> </body> </html>
Referencias:
Documentación
Descarga
Muchisimas gracias. Me funciono perfecto.
ResponderEliminar