Foros del Web » Programación para mayores de 30 ;) » .NET »

Como evitar el reenvio de información

Estas en el tema de Como evitar el reenvio de información en el foro de .NET en Foros del Web. Hola a todos, tengo una página en la que voy agregando datos de unos textboxes a un Grid. Al apretar el botón que realiza esta ...
  #1 (permalink)  
Antiguo 28/01/2006, 08:13
Avatar de rodri  
Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 2 meses
Puntos: 2
Como evitar el reenvio de información

Hola a todos,

tengo una página en la que voy agregando datos de unos textboxes a un Grid.

Al apretar el botón que realiza esta acción, se guardan los datos en una Base de Datos.

Al refrescar la página (apretando F5 o Actualizar) se reenvían los datos generandose una nueva inserción indeseada en la Base.

¿Cuál es la manera mas apropiada de evitar que ocurra esto?

muchas gracias por su tiempo.
__________________
0.o Rodri

Última edición por rodri; 28/01/2006 a las 08:26
  #2 (permalink)  
Antiguo 30/01/2006, 07:58
Avatar de rodri  
Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 2 meses
Puntos: 2
he estado pensando en esto, una solución sería bloquear el botón F5 y deshabilitar la barra de herramientas. Otra solución sería preguntando si los datos que se están insertando actualmente son los que se han insertado anteriormente. Lamentablemente ambos tienen cosas que desmejoran o la presentación o la performance de la aplicación.

¿Se puede saber si la página se está reenviando?
__________________
0.o Rodri
  #3 (permalink)  
Antiguo 30/01/2006, 09:57
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Se me ocurre hacerlo por javascript, algo asi como si document.history.back = document mensaje de error, aunque no se si será posible.
  #4 (permalink)  
Antiguo 30/01/2006, 16:29
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Mirae si te sirviese algo esto:

http://www.tecnocodigo.com/dipro/js/...ios&articulo=7
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:
  #5 (permalink)  
Antiguo 30/01/2006, 16:36
Avatar de rodri  
Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 2 meses
Puntos: 2
a ver, voy a hecharle un ojo y les aviso que tal, gracias.
__________________
0.o Rodri
  #6 (permalink)  
Antiguo 30/01/2006, 16:40
Avatar de rodri  
Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 2 meses
Puntos: 2
EStá bastante bueno, aunque el problema que tengo es que luego de apretar un boton, si hago F5 o refrescar vuelve a meter la información que ya habia metido anteriormente.
__________________
0.o Rodri
  #7 (permalink)  
Antiguo 30/01/2006, 16:52
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Envía las cabeceras HTTP necesarias para que no se guarde en caché la página en cuestión.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #8 (permalink)  
Antiguo 31/01/2006, 08:19
Avatar de rodri  
Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 2 meses
Puntos: 2
ok gracias.

estaba buscando y encontré este snippet en php.

Código:
header("Cache-Control: no-store, no-cache, must-revalidate");
de la página: http://webmastercristiano.com/PHP/function.header.html

Personalmente no se mucho del uso de cabeceras, pero según lo que lei, sería valido hacer lo siguiente

Cache-Control: no-store, no-cache

Código:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
 o
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
aunque leí en http://www.webservicio.com/servicios/metatags/ayuda/
que Pragma no sirve en IE. Bueno a ver que tal y les digo que tal.
__________________
0.o Rodri
  #9 (permalink)  
Antiguo 31/01/2006, 09:05
Avatar de rodri  
Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 2 meses
Puntos: 2
Bueno, al parecer, no dio resultado, se siguen mandando los datos con cada F5 o refresh, aunque parece que no funciona el meta en IE, también probé lo siguiente:

Código:
<meta http-equiv="expires" content="-1" />
bueno, espero que se pueda hacer algo
__________________
0.o Rodri
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 18:31.