Foros del Web » Programando para Internet » PHP »

Actualizar un captcha

Estas en el tema de Actualizar un captcha en el foro de PHP en Foros del Web. Hola: A ver si alguien me puede orientar sobre mi problema, porque llevo hora y media buscando en el maravilloso Google, y después de visitar ...
  #1 (permalink)  
Antiguo 26/09/2007, 03:21
 
Fecha de Ingreso: noviembre-2005
Mensajes: 86
Antigüedad: 18 años, 4 meses
Puntos: 0
Actualizar un captcha


Hola: A ver si alguien me puede orientar sobre mi problema, porque llevo hora y media buscando en el maravilloso Google, y después de visitar 70 u 80 páginas estoy como al principio.

Tengo un formulario con un textarea y pongo un captcha antes de enviarlo, mediante <img src="captcha.php" width="250" height="30">.

Todo me va bien, excepto un pequeño detalle: Si la imagen del captcha tiene algún caracter poco claro y el usuario se equivoca, cuando lo vuelvo a la página inicial del formulario con "history.go(-1)" se vuelve a encontrar con el mismo captcha, con lo que puede seguir teniendo el mismo problema otra vez.

Tengo la posibilidad de refrescar la página, pero entonces pierde todo el texto incluido en la textarea.

He visto en otras ocasiones algunas webs que ponen al lado de la imagen del captcha un enlace "cambiar" que actualiza la imagen cada vez que se clikea, pero ahora no consigo encontrar ninguna para ver el código fuente.

¿Podeis darme alguna orientación de como actualizar el captcha sin que se pierda el contenido del textarea?
  #2 (permalink)  
Antiguo 26/09/2007, 05:50
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 2 meses
Puntos: 8
Re: Actualizar un captcha

Un captcha de esos pone unos números/letras de forma poco clara en una imágen. Todo depende de cómo saca el archivo captcha.php esos número/letras.

Si los saca de una variable de sessión, como es habitual, necesitarás modificar esa variable de sesión antes de "rellamar" a la imágen.

Si la variable se fija en el propio captcha.php, entonces podría funcionar una recarga de la imágen por javascript:

Código HTML:
...
<script>
  functionactucap(){
    obj=document.getElementById("cap");
    if (!obj) obj=window.document.all.cap;
    if (obj){
      obj.src="captcha.php";
    }
  }
</script>
....


....
<img id='cap' name='cap' src='captcha.php'><a href="javascript: actucap();">Cambiar</a> 
__________________
Kelpie
  #3 (permalink)  
Antiguo 26/09/2007, 11:15
 
Fecha de Ingreso: noviembre-2005
Mensajes: 86
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: Actualizar un captcha



Efectivamente. El captcha crea una session.

Estupenda la ayuda. Con la funcion actucap se recarga el captcha en IE.

Solo hay un problema: En Firefox no me actualiza el captcha. Voy a probar otra vez.

Gracias de todas formas.
  #4 (permalink)  
Antiguo 26/09/2007, 12:23
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Actualizar un captcha

podrias poner el fomu con captcha? hace rato que intento algo asi y no me sale.
Segun he provado en firefox siempre dan problemas
  #5 (permalink)  
Antiguo 27/09/2007, 04:39
 
Fecha de Ingreso: noviembre-2005
Mensajes: 86
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: Actualizar un captcha

Cita:
Iniciado por miczoe Ver Mensaje
podrias poner el fomu con captcha? hace rato que intento algo asi y no me sale.
Segun he provado en firefox siempre dan problemas
Aquí lo tienes. Lo copie de Internet, pero siento no poder poner los créditos del autor, porque hace mucho tiempo que lo obtuve y luego lo modifiqué bastante, pero seguro que si lo buscas lo podrás encontrar en www.hotscripts.com:


<html>
<head>
<script>
function actucap(){
obj=document.getElementById("cap");
if (!obj) obj=window.document.all.cap;
if (obj){
obj.src="captcha.php";
}
}
</script>
</head>
<body>
<form method="post" action="comprobar_captcha.php">
<p>Nombre / Nick: &nbsp; <input type="text" name="nombre"></p>
<p>Email: &nbsp; <input name="email" type="text" size="45"></p>
<p>Asunto: &nbsp; <input name="asunto" type="text" size="60"></p>
<p>Mensaje:</p>
<p><textarea name="mensaje" cols="80" rows="10"></textarea></p>


<p>Código de seguridad: &nbsp; <img id="cap" name="cap" src="captcha.php"><a href="javascript: actucap();">Cambiar</a></p>
<p>Repite el Código de seguridad: &nbsp; <input type="text" name="CAPTCHA_CODE" style="width: 50px;"></p>


<p style="padding-top: 5px;"><input type="submit" name="enviar" value="Enviar Mensaje">
<input type="reset" name="enviar" value="Borrar datos"></p>
</form>
</body>
</html>
  #6 (permalink)  
Antiguo 27/09/2007, 08:32
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Re: Actualizar un captcha

Cita:
Iniciado por informa Ver Mensaje


Efectivamente. El captcha crea una session.

Estupenda la ayuda. Con la funcion actucap se recarga el captcha en IE.

Solo hay un problema: En Firefox no me actualiza el captcha. Voy a probar otra vez.

Gracias de todas formas.

mm bueno , de manera personal no me gusta el historyback del javascript, yo prefiero redirecionar con head location y los "datos" los salvo a traves de sessiones.

bueno yo creo que la funcion javascript, no te carga la imagen debido a un problema de cache , prueba agregandola un numero aleatorio como parametro (aunq este parametro no tiene ninguna funcion dentro del captcha)

Código HTML:
<script>
  functionactucap(){
    obj=document.getElementById("cap");
    if (!obj) obj=window.document.all.cap;
    if (obj){
      obj.src= "captcha.php?" + Math.random()  ;
    }
  }
</script> 
Saludos
  #7 (permalink)  
Antiguo 27/09/2007, 09:16
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Actualizar un captcha

No te tira un error de JS? probá igualmente declarar la variable...

Código PHP:
<script>
  
functionactucap(){
    var 
obj=document.getElementById("cap");
    if (!
objobj=window.document.all.cap;
    if (
obj){
      
obj.src"captcha.php?" Math.random()  ;
    }
  }
</script> 
  #8 (permalink)  
Antiguo 28/09/2007, 03:19
 
Fecha de Ingreso: noviembre-2005
Mensajes: 86
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: Actualizar un captcha



Gracias a todos por vuestras aportaciones. Finalmente voy a utilizar el script de Seppo. Me funciona perfectamente tanto en IE como en Firefox. Tendré en cuenta lo de la variable.Muchas gracias. Es una maravilla mirar estos foros.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 01:27.