Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Captcha

Estas en el tema de Captcha en el foro de Frameworks y PHP orientado a objetos en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 05/07/2010, 06:35
 
Fecha de Ingreso: octubre-2009
Mensajes: 223
Antigüedad: 14 años, 6 meses
Puntos: 2
Captcha

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
  1. <form name="guestbook_entry" method="post" action="index.php">
  2. ......
  3. <tr>
  4.                 <td><img src="captcha.php" alt="" /></td>
  5.                 <td><input name="number" type="text"></td>
  6.                 <td></td>
  7.             </tr>
  8.             <tr>
  9.                 <td></td>
  10.                 <td>Please enter the string shown in the image above in the
  11.                 form.</td>
  12.             </tr>
  13.             <tr>
  14.                 <td>&nbsp;</td>
  15.                 <td><input type="submit" name="Submit" value="Submit"></td>
  16.             </tr>
  17.             </table>
  18.         </form>

ARCHIVO CAPTCHA.PHP
-----------------------------
Código PHP:
Ver original
  1. <?php
  2.  
  3. $RandomStr = md5(microtime());
  4. $ResultStr = substr($RandomStr,0,5);
  5. $NewImage = imagecreatefromjpeg("captcha/img.jpg");
  6.  
  7. $LineColor = imagecolorallocate($NewImage,233,239,239);
  8. $TextColor = imagecolorallocate($NewImage, 255, 255, 255);
  9. imageline($NewImage,1,1,40,40,$LineColor);
  10. imageline($NewImage,1,100,60,0,$LineColor);
  11. imagestring($NewImage, 5, 20, 10, $ResultStr, $TextColor);
  12.  
  13. $_SESSION['key'] = $ResultStr;
  14.  
  15. header("Content-type: image/jpeg");
  16. imagejpeg($NewImage);
  17.  
  18. ?>

COMPROBACION AL PRINCIPIO DE INDEX.PHP
----------------------------------------------------------
Código PHP:
Ver original
  1. $key=substr($_SESSION['key'],0,5);
  2.                 $number = $_REQUEST['number'];
  3.                 if($number!=$key)
  4.                 {......

Etiquetas: captcha
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:45.