Les pongo los codigos:
Código PHP:
session_start();
$img=imagecreate(300,200);
.....
......
$letras="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
$len_string=rand(3,7);
$string="";
for($i=0;$i<$len_string;$i++)
$string.=substr($letras,rand(0,61),1);
for($i=0;$i<strlen($string);$i++)
{
imagettftext($img,20,15*$inc,30*$i,50,$blanco,"FACERG.TTF",substr($string,$i,1));
$inc*=-1;
}
//variable que voy a usar en el script procesa_form.php
$_SESSION['string']=strtolower($string);
header("Content-Type: image/JPEG");
imagejpeg($img);
Código HTML:
<form action="procesa_form.php" method="post"> <h2 >Formulario con imagen</h2> Ingresa el codigo de seguridad:<input type="text" size="25" name="captcha"/> (No diferencia entre mayusculas y minusculas) <img id='cap' name='cap' src='imagen-primero.php'/> <?php echo $_SESSION['string'];?> <br/> <a href="#" onClick="actucap();" >No veo bien la imagen</a> <br/> <input type="submit" value="Enviar"/> </form>
Código PHP:
session_start();
if(empty($_POST['captcha']) || !isset($_POST['captcha']))
{
header("location: form-captcha.htm");
return;
}
$captcha=strtolower($_POST['captcha']);
if(!$captcha!=$_SESSION['string'])
{
$_SESSION['mensaje']="Codigo de verificacion incorrecto";
header("location: form-captcha.php");
}
else
{
$_SESSION['mensaje']="<h3>Bien, lo lograste!</h3>"
."<a hrerf=\"http://localhost/Imagenes_PHP/form_captcha/form-captcha.php\">"
."Intentalo de nuevo"
."</a>";
header("location: http://localhost/Imagenes_PHP/form_captcha/confirm.php");
}
Esta variable me trae siempre un valor atrasado, por ejemplo si la captcha tiene "abc", la variable me muestra el valor que el captcha tenia antes.
Se entinede?
Espero me ayuden, gracias.