PHP: Crear un captcha by bufa.es

Articulo de www.bufa.es

Vamos a ver como crear un captcha desde php. Un captcha es una palabra aleatoria mostrada como imagen que se utiliza para evitar que los robots accedan a determinadas web. Este tipo de código de verificación es utilizada para evitar el spam en los formularios de las páginas web.

A continuación una función en php para generar un captcha, con un parámetro que le pasaremos el número de caracteres que formaran la nueva imagen.

function captcha($numcaracteres = 6){$caracteres = '23456789bcdfghjkmnpqrstvwxyz';
$codigo = '';
$i = 0;
while ($i < $numcaracteres) {
$codigo .= substr($caracteres, mt_rand(0, strlen($caracteres)-1), 1);
$i++;
}

// Iniciamos sesión
$_SESSION["captcha"] = $codigo;

// Medidas
$ancho = 100;
$alto = 25;

// Creamos nueva imagen
$imagen = ImageCreate($ancho, $alto);

// Definimos 3 Colores
$color1 = ImageColorAllocate($imagen, 255, 255, 255); // blanco
$color2 = ImageColorAllocate($imagen, 0, 0, 0); // negro
$color3 = ImageColorAllocate($imagen, 255, 0, 0); //rojo

// Color background
ImageFill($imagen, 0, 0, $color2);

// Color texto
ImageString($imagen, 5, 30, 3, $codigo, $color1);

// Líneas diagonales
imageline($imagen, 0, 5, $ancho, 5, $color3);
imageline($imagen, $ancho/4, 0, $ancho/2, $alto, $color3);
imageline($imagen, 0, 18, $ancho, 18, $color3);
imageline($imagen, 46, 0, 86, $alto, $color3);

header("Content-Type: image/jpeg");

// Generamos la nueva imágen jpg
ImageJpeg($imagen);

// Liberamos recursos
ImageDestroy($imagen);
}

// Modo de uso
captcha();

Descargar

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s