Tengo un problema y no se como resolverlo

25/10/2003 - 10:29 por reg | Informe spam
Cuando un formulario y relleno los datos le envio a una pagina, pero eso se
queda almacenado en el historial, es decir que si doy f5 muchas veces lo que
estoy es añadiendo a la base de datos nuevo registro.

¿No se si se me entiende?
 

Leer las respuestas

#1 danicastillo
25/10/2003 - 12:06 | Informe spam
vale, es relativamente facil

cuando crees el formulario desde asp (cuando lo muestras vamos) añade un
campo "unico" (para el cliente al menos)

<input name="codigo" type="hidden" value="<%=now()%>">


ahora en el codigo de añadir esos datos a la db (el action donde apunta el
form) añades

if session("ultimoenvio")<>request.form("codigo") then
abres la db
añades el registro
... y asignas el session
session("ultimoenvio")=request.form("codigo")

else
duplicado, no lo aceptas
response.write "Los datos no han sido introducidos pq ya estan
duplicados"
end if


eso vale para protegerte de pulsar varias veces el boton o varias veces f5,
al menos en principio (no te protege si el usuario abre 2 ventanas de
formulario, y las actualiza alternadas, pero eso ya es mala lexe jejeje)

de todas formas aun puedes mejorarlo, en la pagina de añadir los datos, NO
muestres nada por pantalla, y haz similar a lo de antes

resultado=0
if session("ultimoenvio")<>request.form("codigo") then
abres la db
añades el registro
... y asignas el session
session("ultimoenvio")=request.form("codigo")
resultado=1 ' codigo de ok
else
duplicado, no lo aceptas
resultado=2 ' codigo de no-ok
end if
response.redirect "anyadir2.asp?resultado=" & resultado


Ahora en la pagina anyadir2.asp simplemente haces un

if request.querystring("resultado")="1" then
response.write "susdatos han sido actualizados"
else
response.write "Datos ya añadidos anteriormente, no pulse dos veces el
boton q no soy tonto"
end if



-o|o|--
-o|o| dani castillo
-o|o| http://www15.brinkster.com/danic/
-o|o| tutorial y trucos asp, vb, diseño
-o|o|--
"reg" escribió en el mensaje
news:%
Cuando un formulario y relleno los datos le envio a una pagina, pero eso


se
queda almacenado en el historial, es decir que si doy f5 muchas veces lo


que
estoy es añadiendo a la base de datos nuevo registro.

¿No se si se me entiende?




Preguntas similares