A continuación veremos un pequeño tutorial para saber cómo crear un sencillo captcha en PHP utilizando la librería GD la cual nos permite manejar gráficos en dicho lenguaje; en este caso será utilizada para la creación de nuestro captcha.
Para poder iniciar habrá que tener instalada la librería GD, ésta ya se encuentra incluida en PHP 4.3.0 solo hay que habilitar la extensión para el dll “php_gd.dll” (“php_gd2.dll” a partir de la versión 4.3.2) en el archivo “php.ini”.
Si necesitas más referencias sobre la instalación de
la librería, puedes revisar las siguientes ligas:
Una vez instalada la librería, procederemos con la
creación de la clase “clsCaptcha.php”.
En esta clase definiremos un atributo privado que llamaremos $caracteres que usaremos
en el método “gentTexto” y
generaremos un String aleatorio que tendrá como longitud 5.
En seguida definiremos la función “captcha” que también servirá como el
constructor de la clase y que recibirá como parámetros “$w” y “$h” los cuales
representan el ancho y el alto del cuadro del captcha que obtendrá del método
texto la cadena aleatoria y la guardará en una variable de sesión que
llamaremos “$_SESSION[‘captcha’]”,
esto para poder comparar más adelante la cadena con lo que ingrese el usuario.
Dentro del mismo constructor utilizaremos las
funciones de la librería GD; primero la función “imagecreate” para crear una imagen con la resolución que le especifiquemos,
ésta por sí misma no nos asigna un color de fondo por lo que para agregarle un
color haremos uso de la función “imagecolorallocate”,
la cual recibe como parámetros la imagen a la que se asignará el fondo y los
valores del componente RGB que forman su color.
Definiremos 3 colores usando la función “imagecolorallocate”, uno de fondo, otro
del texto y por último el de las líneas que cruzarán la imagen. Acto seguido
crearemos las líneas que atraviesan la imagen para dificultar el reconocimiento
del texto; para lograrlo usaremos la función “imageline”. Después, para crear el texto usaremos la función “imagestring”. Así mismo, se usó la
función “rand()” para crear
aleatoriamente los colores y la ubicación de la coordenada “Y” de las líneas.
Esta clase regresará una imagen así que deberemos
indicarle al navegador mediante él envió de headers, que el contenido a mostrar
será una imagen tipo PNG: “header( “Content-type: image/png” );”,
por lo que añadiremos lo siguiente al constructor.
El siguiente paso será crear el archivo “captcha.php” donde se requerirá la
clase “clsCaptcha.php” para poder
hacer uso del captcha.
Finalmente creamos el archivo HTML llamado “formulario.php” el cual contendrá un
formulario Web; es importante verificar que se haya hecho el submit, si fue así
haremos la comparación del texto que ingresó el usuario con el del capucha.
Al final el captcha se verá como se muestra en la
siguiente imagen.
Conclusión
En base a esto podemos concluir que el crear un
captcha puede resultar bastante sencillo ya que la dificultad varía del diseño
que se le quiera dar o de la complejidad de lectura.
De igual manera si se necesita implementar un captcha
en un sitio web, se puede utilizar esta opción que se acaba de explicar u optar
por otras alternativas como “reCaptcha” de Google, el cual es gratuito y se
puede implementar en cualquier página web.
Acerca del Autor
Angel Francisco Castro Chaparro es Ingeniero en
Sistemas Computacionales graduado del Instituto Tecnológico de la Laguna.
Actualmente es desarrollador .NET en Dawcons en el área de software a la
medida. Puedes contactarlo al correo acastro@dawcons.com.
No hay comentarios:
Publicar un comentario