Foros del Web » Programando para Internet » PHP »

¿como evitar reenvia el mismo formulario?

Estas en el tema de ¿como evitar reenvia el mismo formulario? en el foro de PHP en Foros del Web. Buenas noches. mi problema es que tengo un formulario para recomendar mi pagina web, el formulario esta en index.php y tiene como accion el mismo ...
  #1 (permalink)  
Antiguo 02/06/2011, 21:40
 
Fecha de Ingreso: abril-2007
Mensajes: 26
Antigüedad: 17 años
Puntos: 0
¿como evitar reenvia el mismo formulario?

Buenas noches.

mi problema es que tengo un formulario para recomendar mi pagina web, el formulario esta en index.php y tiene como accion el mismo index.php ahi esta escritol el codigo en php que lo maneja, bueno el problema es que todo funciona normal envia los datos por atraves de la funcion mail y me regresa a la misma pagina osea index.php hasta ahi todo bien todo cambia cuando presiono el boton de actualizar del navegador o presiono F5 (IE,MOZILLA,CHROME) me paraece una pequeña ventana q indica que al parecer debe volver a enviar los datos y le presiono aceptar y vuelve a enviar los datos antes ya enviados, teniendo en cuenta que el formulario se vacia despues de enviar por primera vez es decir en los campos de texto no se visualiza nada pero como les repito al momento de actualizar la pagina con el boton del navegador o con F5 vuelve a enviar los datos ya enviados antes(en el primer enviar) y cada vez q actualizo es pagina vuelve a enviar como debo solucionar eso por favor necesito ayuda ya es muy urgente.

por cierto lei sobre usar javascript y desabilitar el boton submit despues de enviar pero y si quiere enviarle a otro amigo la recomendacion no tiene mucho sentido

ademas no solo me pasa con ese formulario me pasa tambien con otro que es de busqueda ese formulario envia sus datos a otra pagina que se llama busqdone.php esta pagina muestra la informacion solicitada pero cuando le doy actualizar del mismo modo que el formulario anterior me aparece la misma ventanita.

yo he visto paginas que haces una busqueda y si recargas no muestra ese mensaje como hacen a q se debe?

les agradezco haber leido todo , y les agadezco cualquier ayuda
  #2 (permalink)  
Antiguo 02/06/2011, 21:43
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: ¿como evitar reenvia el mismo formulario?

Separa los archivos. Coloca el formulario en una página totalmente diferente a la que usas para enviar los datos. Cuando envies la información, solo tienes que hacer la lógica y al final redireccionar con header('Location: formulario.php');, sin haber enviado nada al navegador. Esto hará que no se guarde la dirección en el historial y que a su vez evitas que se envie de nuevo la información al formulario.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 02/06/2011, 21:55
 
Fecha de Ingreso: abril-2007
Mensajes: 26
Antigüedad: 17 años
Puntos: 0
Respuesta: ¿como evitar reenvia el mismo formulario?

Cita:
Iniciado por abimaelrc Ver Mensaje
Separa los archivos. Coloca el formulario en una página totalmente diferente a la que usas para enviar los datos. Cuando envies la información, solo tienes que hacer la lógica y al final redireccionar con header('Location: formulario.php');, sin haber enviado nada al navegador. Esto hará que no se guarde la dirección en el historial y que a su vez evitas que se envie de nuevo la información al formulario.
Gracias comprendo claro, seria una forma de solucionar el problema, gracias abimael.

Y dime como haria con el otro formulario el que hace la buzqueda el busqdone.php, este recibe datos de un formulario que esta en otra pagina y los muestra pero cuando recargo la pagina es decir busqdone.php me mmuestra la misma ventanita y reenvia los datos para realizar nuevamente la busqueda, bueno claro supongo que es lo mas logico ya que si deseo saber si se inserto algun registro nuevo a la base de datos debo actualizar la pagina, pero lo que yo no deseo es q se muestre esa ventanita no es agradable para los usuarios como lo solucionaria eso.

y podrias decirme si es q uso algun framework como codeignitier dejarian de pasarme esas cosas
  #4 (permalink)  
Antiguo 03/06/2011, 05:18
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: ¿como evitar reenvia el mismo formulario?

En las búsquedas lo que se tiende a hacer es usar el método GET en vez de POST. Para evitar lo que estás indicando.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 03/06/2011, 15:38
 
Fecha de Ingreso: abril-2007
Mensajes: 26
Antigüedad: 17 años
Puntos: 0
Respuesta: ¿como evitar reenvia el mismo formulario?

Cita:
Iniciado por abimaelrc Ver Mensaje
En las búsquedas lo que se tiende a hacer es usar el método GET en vez de POST. Para evitar lo que estás indicando.
hola abimaelrc.

Gracias nuevamente anoche utilice ese metodo GET, fue lo unico que se me paso por la cabeza, ahora una cosita tu crees que hay algun riesgo con eso del metodo get, asi sea pequeño me gustaria saberlo como tema de aprendizaje. gracias por toda tu ayuda
  #6 (permalink)  
Antiguo 03/06/2011, 17:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: ¿como evitar reenvia el mismo formulario?

Si es búsqueda, puede ser riesgoso tanto POST como GET. Que POST no muestre el resultado en la barra de direcciones, no quiere decir que no tenga riesgos. Tu lo que debes hacer es filtrar los valores. Eso va a depender de la base de datos que tengas, si estás usando la librería de mysql, debes usar mysql_real_escape_string. Es forsozo usarlo cuando los valores vienen fuera de lo que hayas usado, o sea de otro usuario.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 03/06/2011, 17:15
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: ¿como evitar reenvia el mismo formulario?

Regresando al tema del post, a veces los usuarios tienden a presionar el botón de enviar más de una vez, para evitar esto, puedes con javascript deshabilitar el botón de envio cuando lo presionen.
  #8 (permalink)  
Antiguo 03/06/2011, 17:57
 
Fecha de Ingreso: abril-2007
Mensajes: 26
Antigüedad: 17 años
Puntos: 0
Respuesta: ¿como evitar reenvia el mismo formulario?

Cita:
Iniciado por abimaelrc Ver Mensaje
Si es búsqueda, puede ser riesgoso tanto POST como GET. Que POST no muestre el resultado en la barra de direcciones, no quiere decir que no tenga riesgos. Tu lo que debes hacer es filtrar los valores. Eso va a depender de la base de datos que tengas, si estás usando la librería de mysql, debes usar mysql_real_escape_string. Es forsozo usarlo cuando los valores vienen fuera de lo que hayas usado, o sea de otro usuario.
Hola, sabes si utlizo el mysql_real_escape_string. como tu me mencionas. entonces no deberia preocuparme. como lo estoy haciendo en normal?.

Entonces. muchas gracias por todititito.
  #9 (permalink)  
Antiguo 03/06/2011, 17:59
 
Fecha de Ingreso: abril-2007
Mensajes: 26
Antigüedad: 17 años
Puntos: 0
Respuesta: ¿como evitar reenvia el mismo formulario?

Cita:
Iniciado por ocp001a Ver Mensaje
Regresando al tema del post, a veces los usuarios tienden a presionar el botón de enviar más de una vez, para evitar esto, puedes con javascript deshabilitar el botón de envio cuando lo presionen.

Hola ocp001a,

gracias por tu colaboracion tenia entendido algo como eso, si es util tambien pienso implementarlo. gracias.
  #10 (permalink)  
Antiguo 03/06/2011, 18:01
 
Fecha de Ingreso: abril-2007
Mensajes: 26
Antigüedad: 17 años
Puntos: 0
Respuesta: ¿como evitar reenvia el mismo formulario?

Cita:
Iniciado por abimaelrc Ver Mensaje
Si es búsqueda, puede ser riesgoso tanto POST como GET. Que POST no muestre el resultado en la barra de direcciones, no quiere decir que no tenga riesgos. Tu lo que debes hacer es filtrar los valores. Eso va a depender de la base de datos que tengas, si estás usando la librería de mysql, debes usar mysql_real_escape_string. Es forsozo usarlo cuando los valores vienen fuera de lo que hayas usado, o sea de otro usuario.
POr cierto mi estimado abimaelrc me aconsejaste usar header location dime una cosita como puedo controlar el tiempo que demore en redireccionarme a mi pagina anterior en el caso que les comente al principio.

Etiquetas: reenvia, formulario
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 12:15.