Un gran problema hoy en día es el spam. La mejor manera de combatir el spam es Captcha. Captcha hace la diferencia entre un ordenador y un ser humano. Las computadoras no pueden leer el texto de una imagen y es por eso que vamos a utilizar una foto también.
Vamos a empezar con la creación del captcha.php archivo. Este archivo se creará una foto con un texto escrito en él
header ('Content-type: image /jpeg.
'); //Una imagen jpeg será emitida $ width = 60; //Ancho de la imagen $ height = 24; //Altura de la imagen $ Mi_imagen = imagecreatetruecolor ($ ancho, $ altura); //Crear truecolor imagen imagefill ($ Mi_imagen, 0, 0, 0xFFFFFF); //Fondo blanco
Hasta ahora hemos logrado crear una imagen que tiene un fondo blanco, de 60 píxeles de ancho y 24 píxeles de alto.
Vamos a añadir algunas distorsiones:
para ($ c = 0; $ c $ x = rand (0, $ ancho-1); $ y = rand (0, $ Altura-1); imagesetpixel ($ Mi_imagen , $ x, $ y, 0x000000);}
insertada 40 píxeles negros en la imagen Estos píxeles diferentes coordonates cada vez que una imagen se carga
Vamos a escribir el texto en.. el cuadro:..
$ x = rand (1,10); //X coordonate de la esquina superior izquierda $ y = rand (1,10); //Y coordonate de la esquina superior izquierda $ rand_string = rand (10000,99999); //Obtener un número entre 10.000 y 99.
999 imagestring ($ Mi_imagen, 5, $ x, $ y, $ rand_string, 0x000000); //Escribe el número obtenido anteriormente en la imagen
Vamos a guardar la cadena escrita en la imagen en una cookie. Vamos a leer esta cookie vez se envía un formulario para comparar datos.
setcookie ("cookie-código de imagen", (md5 ($ rand_string)) , el tiempo () + 3600 "/"); imagejpeg ($ Mi_imagen); //Cree el imagedestroy imagen jpeg ($ Mi_imagen); //Eliminar la imagen jpeg
En este ejemplo el nombre de la cookie es la galleta -captcha, su contenido será el valor codificado md5 de la cadena aleatoria obtenida antes (el número escrito en la imagen), será válido durante una hora en todo su dominio.
La imagen se borra (imagedestroy ) para ahorrar espacio en el servidor
El archivo captcha.php completa será:
header ('Content-type: image /jpeg ".); $ width = 60; $ height = 24; $ Mi_imagen = imagecreatetruecolor ($ ancho, $ altura); imagefill ($ Mi_imagen, 0, 0, 0xFFFFFF); for ($ c = 0; $ c $ x = rand (0, $ ancho-1); $ y = rand (0, $ Altura-1); imagesetpixel ($ Mi_imagen, $ x, $ y, 0x000000);} $ x = rand (1,10); $ y = rand (1,10); $ rand_string = rand (10000,99999); imagestring ($ Mi_imagen, 5, $ x, $ y, $ rand_string, 0x000000); setcookie ("cookie-código de imagen", (md5 ($ rand_string)), el tiempo () + 3600 "/"); imagejpeg ($ Mi_imagen); imagedestroy ($ Mi_imagen);?>
Ventanas - Un Análisis Compar…