Hola a Todos Tengo una Pequeña Dudad sobre los captcha en php
mi Codigo es el siguiente
Captcha.php
Código PHP:
<?php
@session_start();
unset($_SESSION["Captcha"]);
session_register("Captcha");
class CaptchaCode
{
var $Font = "Captcha/font23.ttf";
function GenerarCode($CantCar)
{
$Letras = "023456789ABCDEFJHIJKMNOPQRSTUVWXYZabcdefjhijkmnopqrstuvwxyz";
$Codigo = "";
for($i = 0; $i < $CantCar; $i++)
{
$Codigo.=substr($Letras,rand(0,60),1);
}
return $Codigo;
}
function CaptchaCode($Width = 150, $Height = 50,$CantCar = 7 )
{
header('Content-type: image/gif');
$Code = $this->GenerarCode($CantCar);//Generamos una clave al azar
$Size = $Height*0.50;//Tamaño de Letra a Dar depende de el Alto del texto
$Fondo = imagecreatefromgif("Captcha/11.gif");
$FondoSize = getimagesize("Captcha/11.gif");
$Image = imagecreatetruecolor($Width,$Height);
//Insertamos el Fondo con la Opacidad q le Asignemos Dandole un Posicion x e y
imagecopyresampled($Image,$Fondo, 0, 0, 0, 0, $Width, $Height,
$FondoSize[0], $FondoSize[1] );
$LineaColor = imagecolorallocate($Image, 100, 100, 100);
//Generando un Random de Lineas en el Fondo
for( $i=0; $i<($Width * $Height)/700; $i++ )
{
imageline($Image, mt_rand(0,$Width), mt_rand(0,$Height), mt_rand(0,$Width),
mt_rand(0,$Height), $LineaColor);
}
//Generando un Random de Puntos en el Fondo
for( $i=0; $i<($Width * $Height)/7; $i++ )
{
imagefilledellipse($Image, mt_rand(0,$Width), mt_rand(0,$Height), 1, 1,
$LineaColor);
}
$Color = imagecolorallocate($Image, 20, 40, 100);
$Text = imagettfbbox($Size,0,$this->Font,$Code);
$x = ($Width - $Text[4])/2;
$y = ($Height - $Text[5])/2;
imagettftext($Image, $Size, 5, $x, $y, $Color, $this->Font , $Code);
imagegif($Image);
imagedestroy($Image);
$_SESSION["Captcha"] = $Code;
session_write_close();//Cierra la Sesion y Guarda los Datos
}
}
$Width = isset($_GET["w"]) ? $_GET["w"] : 250;
$Height = isset($_GET["h"]) ? $_GET["h"] : 50;
$Car = isset($_GET["c"]) ? $_GET["c"] : 7;
$Captcha = new CaptchaCode($Width,$Height,$Car);
?>
con esto me genero un Captcha q va a ser reicibido en una imagen
y lo muestro en una imagen
Código PHP:
<img id="ImgCaptcha" name="ImgCaptcha"
src="Captcha.php"/>
<img src="../Imagenes/Adornos/reload.gif" width="22" height="22" class="MenImg"
title="Ver un Nuevo Conjunto de Caracteres"
onclick="CambiarCar('ImgCaptcha');"/>
el Js es el Siguiente
Código PHP:
function CambiarCar(img)
{
var Obj = document.getElementById(img);
if (!Obj) Obj = window.document.all.ImgCaptcha;
if(Obj)
{
Obj.src = "Captcha.php";
}
}
Mi problema es q al hacerle click ala imagen reload.gif la imagen de captcha no cambia he tratado de mil formas de ver porq no cambia quisiera ayuda estoy deseperado
me han dicho q tal vez pueda ser la sesion pero no se como hacerlo ni tengo idea de otro planteamiento por favor ayuda