Buenas tengo un formulario con un campo captcha, es la primera vez que lo he usado, entonces me encuentro que tengo un campo con una imagen, generada por el archivo captcha.php, pero mi problema viene cuando intento que si el captcha introducido se comprueba con el requerido, porque de la forma que tengo hecho el formulario debe de ser enviado (en este caso a esta misma página ya que la comprobación solo funciona enviando el form) y además no recuerda los campos rellenados por tanto es una molestia para el usuario, os dejo el código a ver si podeis ayudarme
Tampoco puedo hacerlo con Javascript antes de enviarlo porque los numeros no coinciden...
Si pongo justo despues del formulario esta linea me aparece un numero distinto
echo $_SESSION['key'] (teoricamente este valor lo da en el captcha.php pero creo que lo ejecuta antes en el código)
ARCHIVO INDEX.PHP
--------------------------
Código PHP:
Ver original<form name="guestbook_entry" method="post" action="index.php">
......
<tr>
<td><img src="captcha.php" alt="" /></td>
<td><input name="number" type="text"></td>
<td></td>
</tr>
<tr>
<td></td>
<td>Please enter the string shown in the image above in the
form.</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</form>
ARCHIVO CAPTCHA.PHP
-----------------------------
Código PHP:
Ver original<?php
$ResultStr = substr($RandomStr,0,5);
imagestring($NewImage, 5, 20, 10, $ResultStr, $TextColor);
$_SESSION['key'] = $ResultStr;
header("Content-type: image/jpeg");
?>
COMPROBACION AL PRINCIPIO DE INDEX.PHP
----------------------------------------------------------
Código PHP:
Ver original$key=substr($_SESSION['key'],0,5); $number = $_REQUEST['number'];
if($number!=$key)
{......