Simplemente, que hago mal?
<?
session_start();
$md5 = md5(microtime() * mktime());
$string = substr($md5,0,5);
$captcha = imagecreatefrompng("./captcha.png");
$black = imagecolorallocate($captcha, 0, 0, 0);
$line = imagecolorallocate($captcha,233,239,239);
imageline($captcha,0,0,39,29,$line);
imageline($captcha,40,0,64,29,$line);
imagestring($captcha, 5, 20, 10, $string, $black);
$_SESSION['key'] = md5($string);
header("Content-type: image/png");
imagepng($captcha);
session_start();
if(md5($_POST['code']) != $_SESSION['key'])
{
die("Error: Nos has introducido el codigo correcto");
}else{
echo 'Codigo Correcto, no eres una maquina ó al menos no lo pareces';
}
?>
Cita de: Adramelech en 28 Agosto 2008, 03:00 AM
Simplemente, que hago mal?
<?
session_start();
$md5 = md5(microtime() * mktime());
$string = substr($md5,0,5);
$captcha = imagecreatefrompng("./captcha.png");
$black = imagecolorallocate($captcha, 0, 0, 0);
$line = imagecolorallocate($captcha,233,239,239);
imageline($captcha,0,0,39,29,$line);
imageline($captcha,40,0,64,29,$line);
imagestring($captcha, 5, 20, 10, $string, $black);
$_SESSION['key'] = md5($string);
header("Content-type: image/png");
imagepng($captcha);
session_start();
if(md5($_POST['code']) != $_SESSION['key'])
{
die("Error: Nos has introducido el codigo correcto");
}else{
echo 'Codigo Correcto, no eres una maquina ó al menos no lo pareces';
}
?>
Tal vez deberias colocar el codigo del formulario !!...
Por otro lado, no veo necesario llamar dos veces
session_start();, con una sola vez basta !!
Tambien seria de buena ayuda saber que error te esta dando!
Pasa que no me da error, nunca muestra la imagen. Codigo del formulario:
Ingresar el texto mostrado en la imagen <br>
<form action="captchademo.php" method="post">
<img src="captcha.php" width="100" height="30"><br>
<input name="tmptxt" type="text"><br>
<input name="btget" type="submit" value="Verificar Codigo">
<input name="action" type="hidden" value="checkdata">
</form>
Aparece así, como si la imagen no estubiera pero SEGURO esta en la carpeta:
(http://img84.imageshack.us/img84/6813/asdot4.jpg)
LLama la imagen directa desde el explorador y dinos qué error te manda.
Suerte
por lo que se ve no encuentra la imagen, por consiguiente es probable que no esté pudiendo escribirla... asegúrate de tener los permisos requeridos en el directorio para que la función pueda escribir la imagen...
S2