Este es el codigo de error:
captcha:
Código :
<?php
define("CARPETA","fuentes/"); //nombre de la carpeta donde tenemos guardadas las imagenes, fuente y demas
define("NOMBREFONDO","captcha"); //nombre de la imagen de fondo del captcha, sin la extencion (ejem: imagen.pnp, seria "imagen"
define("EXTIMG","png");//extencion de la imagen del fondo(ejem: imagen.png seria "png")
define("FUENTELETRA","VeraBd.ttf"); //nombre con extencion del arcvhivo de la fuente a usar
define("TAMFUENTE",12); //definimos el tamano de la fuente
define("TAMANOCAPTCHA",5); //tamano del codigo que queremos que aparesca en el captcha
define("NUMEROLINEAS",7); //numero de lineas a dibujar en el captcha
define("MAXFILES",5); //numero maximo de archivos que se guardaran temporalmente una vez que se genere el captcha
class captcha{
function getcadenaencrip($tamanocaptcha){
do {
$md5Hash = md5( microtime( ) * mktime( ) );// Generamos un string aleatorioamente y lo encriptamos con md5
preg_replace( '([1aeilou0])', "", $md5Hash ); //quitamos los caracteres indistinguibles
} while( strlen( $md5Hash ) < $tamanocaptcha ); //generaremos el numero de caracteres que dice $captchaTextSize
$cadenaencriptada = substr( $md5Hash, 0, $tamanocaptcha ); //guardamos la clave encriptada en la variable de sesion
return $cadenaencriptada;
}
function crearimagen(){
$captchafondo = imagecreatefrompng( CARPETA.NOMBREFONDO.".".EXTIMG );//Especificamos la imagen del fondo
$colortexto = imagecolorallocate( $captchafondo, 31, 118, 92 ); //elegimos color de texto
$colorlineas = imagecolorallocate( $captchafondo, 15, 103, 103 );//elegimos color de lineas
$infoimagen = getimagesize( CARPETA.NOMBREFONDO.".".EXTIMG); //recuperamos tama�o de la imagen de fondo
$codigo=getcadenaencrip(TAMANOCAPTCHA);
//dibujamos las lineas
for($i=0;$i<NUMEROLINEAS;$i++){
$inicioX= mt_rand( 0, $imageInfo[ 0 ] );
$finX= mt_rand( 0, $imageInfo[ 0 ] );
//dibujamos lineas en el captcha
imageline( $captchafondo, $xStart, 0, $xEnd, $imageInfo[1], $lineColor );
}
imagettftext( $captchafondo, TAMFUENTE, 10, 35, 35, $colortexto, CARPETA.FUENTELETRA,$codigo);
//Preparamos cabeceras de la imagen para que no se guarde en cache
header ("Content-type:".CARPETA.EXTIMG);
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Fri, 19 Jan 1994 05:00:00 GMT");
header("Pragma: no-cache");
imagepng($captchafondo);
}
function borraimagenesguardadas(){
$DIR=opendir(CARPETA);
$imagenes=array();
while(($nombre=readdir($DIR))){
if($nombre!= "." && $name != ".."){
$imagenes=$nombre;
}
}
closedir($DIR);
if(count($imagenes)==0)return;
rsort($imagenes);
while(count($imagenes)>MAXARCHIVOSIMAGENES)
{
$last=array_pop($imagenes);
unlink(CARPETA.$last);
}
}
}
?>El formulario index.php
Código :
<?php
session_start(); //iniciamos la sesión
require_once('captcha.php');
$captcha = new Captcha();
?>
<html>
<head></head>
<body>
<form action="validacion.php” method="post">
<?php $_SESSION['image_name'] =$captcha->crearimagen(); ?>
<img src="<?php echo $_SESSION[’image_name’] ?>">
<input type="text" name="imageText" />
<input type="submit" name="action" value="Submit" />
</form>
</body>
</html>El formulario lo tengo montado aqui:
http://jorgelig.la100rra.com.mx/pedidos/
Pd. La libreria GD esta habilitada
GD Support enabled
GD Version bundled (2.0.28 compatible)
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
