Listar un directorio con php es muy útil para visualizar de forma rápida el contenido de una carpeta de nuestro proyecto, si añadimos un...
Insertar captcha en php
Que es un captcha
Un Captcha ( acrónimo de Completely Automated Public Turing test to tell Computers and Humans Apart ), es un sistema de reconocimiento automático para diferenciar a máquinas y humanos, con este sistema comprobamos que quien está intentando acceder a nuestra aplicación es una persona física y no un sistema automatizado
Para que se utiliza
Principalmente, los captcha se utillizan en formularios web para evitar que los robots envien spam, pongan en peligro la seguridad de nuestra aplicación o inserten registros automáticos en nuestra aplicación con fines lucrativos.
Como se usa
Un captcha puede insertarse en varios lenguajes de programación, existen captcha multiplataforma, aunque la mayoria soportan PHP, que es la tecnologia con la que vamos a trabajar en este articulo, en la web podemos encontrar muchos servicios de este tipo, scripts gratuitos como Securimage o TheCAPTCHA, aunque el mas utilizado en Internet es reCAPTCHA, en este último vamos a basar este articulo.
reCAPTCHA
reCAPTCHA es un servicio gratuito de Google que usa un motor de análisis de riesgos diseñado para mantener a los robots fuera del alcance de nuestras aplicaciones web.
Registro
Lo primero que debemos hacer es ir a la Web oficial de reCaptcha y registrarnos, accedemos con nuestra cuenta de Google y a continuación pulsamos en “Get reCaptcha” para acceder al formulario de registro en el que debemos insertar en primer lugar una etiqueta (por ejemplo el nombre de nuestro sitio web) y nuestro dominio, a continuación pulsamos en registro.
Finalizado el proceso de registro reCAPTCHA la aplicación nos muestra las credenciales para utilizarlo en nuestro dominio de forma correcta, en primer lugar nos muestra las claves, la clave pública del sitio y la clave secreta
En segundo lugar nos ofrece las lineas de código necesarias para implementarlo en nuestro proyecto, un script para la cabecera y una etiqueta <div> con un atributo “data-sitekey” con la clave pública de nuestro sitio.
Cuando los usuarios de nuestra web envien un formulario en el que reCaptcha haya sido integrado, obtendremos una cadena llamada “g-recaptcha-response”, para comprobar si Google ha verificado al usuario, envía una solicitud GET con una serie de parámetros.
Instalación en el servidor
Para utilizar reCaptcha en PHP tenemos que descargar la libreria “reCaptcha-PHP-library” en este enlace, la descarga es un archivo .zip que incluye varios archivos y ejemplos, el archivo que nos interesa es “recaptchalib.php”, esta libreria debemos ponerla en la carpeta principal de nuestro proyecto para insertarla en el codigo.
Insertamos la libreria con un “require_once()” en el documento y creamos dos variables, “publickey” y “privatekey” a las cuales le asignamos respectivamente el valor de las claves publica y privada que Google nos ha proporcionado como vimos anteriormente.
<?php
require_once('recaptchalib.php');
$publickey = "Tu_clave_publica";
$privatekey = "Tu_clave_secreta";
$resp = null;
?>
En el formulario insertamos un PHP en el que llamamos a la función “recaptcha_get_html()” incluida en la libreria pasandole el parametro “publickey”.
<?php
echo recaptcha_get_html($publickey);
?>
Validar el captcha
La mejor forma de llevar a cabo la validación del captcha es comprobando con un “if()” si se ha recibido algo por POST, a continuación asignamos a la variable “resp” el objeto “recaptcha_check_answer” que nos retorna los valores con los argumentos que tiene que recibir, creamos dentro otro if en el que “is_valid” nos devolverá un valor booleano (FALSE / TRUE), si “resp->is_valid” nos devuelve TRUE, la verificación es correcta y se puede continuar con la ejecución del codigo, si “resp->is_valid” nos devuelve FALSE la verificación es incorrecta y se debe detener la ejecución del codigo.
if ($_POST) {
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if ($resp->is_valid) {
echo "CORRECTO";
} else {
echo "CAPTCHA INCORRECTO";
}
}
El ejemplo de todo este código puedes verlo y probarlo al inicio de este articulo, puedes ver y descargar el codigo completo en mi cuenta de Github, gracias por visitar esta web
Quizás te interese ...
Pasar variables en php es muy fácil, lo primero que tenemos que saber es que el ámbito de una variable es el sitio donde la variable tiene...
Los parámetros son variables que recibe una función para utilizarlas en la ejecución de la misma, estos se pueden pasar de 3 formas...
En este artículo vamos a crear un mecanismo para mostrar las tablas de una base de datos en MySQL dinámicamente, el objetivo es que el...
Valoraciones
Sé el primero en valorar