Ayuda con Formulario

Hola experto ojala puedas ayudarme. Tengo este formulario que estoy terminando:
http://www.dentistattijuana.com/contacttest.html
Como veras tiene un control Captcha. Aparentemente todo esta bien me envía la información y todo solo un problema. Cuando dígito mal el código se va a otra página:
http://www.dentistattijuana.com/captcha.html
La cual me devuelve al formulario para escribir bien el código aquí todo bien el código se actualiza y todo bien no tengo problemas en el internet explorer. Pero cuando hago lo mismo en Firefox es decir cuando escribo el código mal se va a la página:
http://www.dentistattijuana.com/captcha.html
hasta alli todo bien el problema es que me devuelve a la pagina pero el codigo no se actualiza por que supuestamente cuando regreso se debe actualizar como si lo hace en el internet explorer. Por que esta pasando esto?
en la pagina:
http://www.dentistattijuana.com/captcha.html  tengo este codigo:
<form><input type="button" value="Atras" OnClick="window.history.go(-1)"></form>
¿Por qué me funciona bien el en internet explorer y no en el Firefox?
Gracias por tu ayuda.

2 Respuestas

Respuesta
1
Por lo que veo no estas usando un captcha real sino imágenes que tienes en tu servidor y que accedes mediante la url
http://www.dentistattijuana.com/captcha.cgi
Esto devuelve la imagen aleatoria.
El problema es que estas regresando a la página anterior de esta forma window. History. Go(-1) esto lo que hace es volver a la página como si nunca hubieses hecho submit en el formulario. Por eso te muestra la misma imagen otra vez.
Recuerda que window. History. Go no es una petición a tu servidor sino una utilidad de algunos navegadores mediante javascript.
Quizás soluciones tu problema usando esta función
<input type="button" value="Atras" OnClick="history.back()">
Espero te funcione.
Saludos.
P.D. Por favor cerrar y valorar la respuesta para que más personas como tu puedan hacer sus preguntas por aquí.
La verdad no me ayuda es más en el Firefox regresa a la página anterior pero no llama a la imagen actualizada. Me sigue mostrando la imagen anterior. ¿Cómo puedo controlar esto por favor?
Pues la solución es esta pero perderás el valor de lo que la persona agregó en el formulario. Al menos que uses sesiones.
<input type="button" value="Atras" OnClick="windows.location='http://www.dentistattijuana.com/contacttest.html'">
Disculpa es window.location sin la s
Asi:
<input type="button" value="Atras" OnClick="window.location='http://www.dentistattijuana.com/contacttest.html'">
Respuesta
1
Usar el objeto history implica que todos los navegadores para los que pretendas hacer uso de la página tengan el mismo funcionamiento con su caché, cosa que (como acabas de descubrir) no es así.
Cada uno gestiona la cache y el historial como quiere, y te encontrarás con muchos más problemas de los que crees si el usuario ha cambiado su configuración particular.
Lo que debes hacer es hacer la redirección desde http://www.dentistattijuana.com/totmail38.cgi (que es quien procesa los datos de tu formulario). Comprueba que los datos son correctos, y si no los son, vuelves a cargar la página desde el CGI.
Como observación, veo que la técnica que estas usando es un poco obsoleta, puesto que con PHP podrías solventar todos los problemas que estas teniendo rápidamente.
Si decides hacerlo en PHP no dudes en consultarme.
¿Cómo hago la redirección que me dices y al hacer esto, la información que escribir no la pierdo? Por otra parte no manejo el PHP casi nada y no se como podría hacerlo. Gracias amigo por tu ayuda.
Lo primero que debes hacer es poner al día tus conocimientos de PHP, puesto que para el manejo de información tratada en formularios es fundamental.
Así, independientemente del nivel de PHP que tengas, el cual entiendo que es bajo, te explicaré por encima como pasar datos de un formulario a otro y como hacer redirecciones en PHP.
Lo primero que tenemos que tener claro es la existencia de dos variable FUNDAMENTALES dentro de PHP, que son $_POST y $_SESSION. $_POST contiene los datos de un formulario que se han enviado a un script, y $_SESSION nos permite almacenar datos a nivel global entre uno y otro script, de forma que siempre podamos recordar alguno.
Así, imaginemos que tenemos dos scripts, uno "pedir_datos.php" y otro "validar_datos.php"
El primero contiene la definición del formulario, esto es, la maquetación y nombres de los campos. Un ejemplo:
<html>
<?php
session_start(); // Luego veremos para que sirve esto
?>
<body>
<form method='post' action='validar_datos.php'>
<input type='text' name='nombre' value='<?php echo $_SESSION["nombre"]; ?>'/>
<input type='submit' value='Enviar'/>
</form>
</body>
</html>
En esta pequeña página hemos definido un formulario con un campo llamado nombre que vamos a enviar a "validar_datos.php". Cuando el usuario clickee en el botón Submit los datos del formulario serán enviados a ese script. En "validar_datos.php" haremos las comprobaciones oportunas, y si algo no es correcto haremos la redirección a la página de petición de datos. Algo parecido a esto:
<?php
   session_start();
   $_SESSION["nombe"] = $_POST["nombre"]
   if (NO_ES_VALIDO($_SESSION["nombre"]) {
      header('Location: pedir_datos.php');
   }
   else {
      Hacer lo que tengas que hacer si todo esta bien.
   }
?>
Basicamente lo que hace validar datos es almacenar en session del navegador los datos que el usuario esta pasando, para que, en caso de tener que volver a pedirlos por no estar bien, recordarlos al ejecutar la instruccion session_start();
EN fin, este es un ejemplo sencillo que soluciona rápidamente tu problemática, aunque como ves, requiere cierto conocimiento de PHP.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas