Foros del Web » Programando para Internet » PHP »

Como evitar doble envio de formulario?

Estas en el tema de Como evitar doble envio de formulario? en el foro de PHP en Foros del Web. Hola a todos, tengo un formulario de inscripciones y para evitar ataques, quisiera desactivar la función de envío de datos, durante al menos 3 o ...
  #1 (permalink)  
Antiguo 15/07/2008, 13:42
 
Fecha de Ingreso: julio-2008
Mensajes: 1
Antigüedad: 15 años, 9 meses
Puntos: 0
Como evitar doble envio de formulario?

Hola a todos, tengo un formulario de inscripciones y para evitar ataques, quisiera desactivar la función de envío de datos, durante al menos 3 o 4 segundos. Puede ser desactivando el botón pero preferiblemente desactivando la recepción de datos durante ese tiempo.

Creo que se podría hacer con sleep pero no estoy seguro del como.

Podrían ayudarme?
  #2 (permalink)  
Antiguo 15/07/2008, 15:54
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: Como evitar doble envio de formulario?

Holas mrwon, bienvenido al foro.

Acerca de tu pregunta, podrías guardar la fecha hora del último envío en una variable de sesión (sino es que en una base de datos), de modo que cuando envíes de nuevo, consulte ese último valor: si el tiempo transcurrido es menor al estimado por ti (ejemplo, 3 segundos), envíe el mensaje de error o bien que no haga nada, etc... es una idea :P
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #3 (permalink)  
Antiguo 15/07/2008, 16:10
 
Fecha de Ingreso: junio-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Como evitar doble envio de formulario?

Hola mrwon,

Lamento informarte que no es posible hacer eso con php sin por lo menos utilizar la base de datos.

Si lo haces con javascript cualquier programador que sepa un poco podria imitarte la pagina y enviar datos infinitamente: javascript descartado(nunca confies en javascript).

Si no queres usar las variables de session de php por seguridad, lo unico que te quedaria es guardar un fecha en la base de datos y compararla con cada logueo.



PD: quinqui muy linda pagina xD
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 08:20.