Este script genera
imágenes (conocidos como "Captcha" ) que contienen códigos de seguridad utilizados para proteger
una forma contra los robots de spam. Mediante la codificación de un 'password' dentro de una imagen y
pidiendo al usuario que vuelva entrar en
lo que ven con el fin de verificar que el usuario es un humano y no un software automatizado.
Probemos los códigos para
ver cómo funciona:
<?php
session_start();
class CaptchaSecurityImages {
var $font =
'monofont.ttf';
function
generateCode($characters) {
$possible =
'23456789bcdfghjkmnpqrstvwxyz';
$code = '';
$i = 0;
while ($i
< $characters) {
$code
.= substr($possible, mt_rand(0, strlen($possible)-1), 1);
$i++;
}
return
$code;
}
function
CaptchaSecurityImages($width='120',$height='40',$characters='6') {
$code =
$this->generateCode($characters);
/* font
size will be 75% of the image height */
$font_size
= $height * 0.75;
$image = @imagecreate($width, $height) or die('No
se puede inicializar nuevo flujo de imagen GD');
$background_color =
imagecolorallocate($image, 255, 255, 255);
$text_color
= imagecolorallocate($image, 20, 40, 100);
$noise_color
= imagecolorallocate($image, 100, 120, 180);
for( $i=0;
$i<($width*$height)/3; $i++ ) {
imagefilledellipse($image,
mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noise_color);
}
for( $i=0;
$i<($width*$height)/150; $i++ ) {
imageline($image,
mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height),
$noise_color);
}
$textbox =
imagettfbbox($font_size, 0, $this->font, $code) or die('Error in
imagettfbbox function');
$x =
($width - $textbox[4])/2;
$y =
($height - $textbox[5])/2;
imagettftext($image,
$font_size, 0, $x, $y, $text_color, $this->font , $code) or die('Error en la
función imagettftext');
header('Content-Type:
image/jpeg');
imagejpeg($image);
imagedestroy($image);
$_SESSION['security_code']
= $code;
}
}
$width = isset($_GET['width']) ? $_GET['width'] : '120';
$height = isset($_GET['height']) ? $_GET['height'] : '40';
$characters = isset($_GET['characters']) && $_GET['characters'] >
1 ? $_GET['characters'] : '6';
$captcha = new
CaptchaSecurityImages($width,$height,$characters);
?>
Eso es básicamente el archivo que nos ayudara hacer nuestro captcha, también puedes descargar el código y ver un ejemplo haciendo Click Aqui
No hay comentarios.:
Publicar un comentario