Avatar billede apo Praktikant
27. marts 2004 - 19:03 Der er 18 kommentarer og
1 løsning

Forhindre genbesøg af side

Hej,

Hvordan forhindrer jeg en bruger i at genbesøge min bestillingsformular efter at bestillingen er sendt?

Apo
Avatar billede apo Praktikant
27. marts 2004 - 19:07 #1
... Eller hvordan forhindrer jeg en bruger i at sende en bestilling mere end én gang?

Apo
Avatar billede tzag_dk Nybegynder
27. marts 2004 - 19:23 #2
Skal man være logget ind for at sende en bestilling?
Avatar billede apo Praktikant
27. marts 2004 - 19:30 #3
nej, det skal man ikke.
Avatar billede tzag_dk Nybegynder
27. marts 2004 - 19:34 #4
Så kan du lave en cookie.

Når man har bestilt noget, så laver man cookien.
Og når man kalder siden, så checker man om cookien fx er 1, og hvis den er det kan man ikke sende igen.

Men det vil give et problem hvis flere brugere bruger den samme pc.
Avatar billede apo Praktikant
27. marts 2004 - 19:37 #5
Kan man ikke forhindre brugeren i fysisk at besøge siden igen via session, så brugeren får en besked om at siden ikke kan hentes, da bestillingen allerede er sendt?
Avatar billede tzag_dk Nybegynder
27. marts 2004 - 19:42 #6
jo det tror jeg nok.

Der hvor du sender din bestilling tilføjer du dette:
session("harbestilt") = session.sessionID

Og der hvor du kalder bestillings siden gør du sådan:
if session("harbestilt") = session.sessionID then
response.write("Du har allerede lavet en bestilling")
else
' Din bestillings formular
end if
Avatar billede apo Praktikant
27. marts 2004 - 19:45 #7
Virker det også ved tilbagekald af siden? (Hvis brugeren klikker på 'Tilbage' i browseren)
Avatar billede tzag_dk Nybegynder
27. marts 2004 - 19:45 #8
Men det vil ikke virke hvis brugeren lukker browseren og der efter åbner den igen
Avatar billede tzag_dk Nybegynder
27. marts 2004 - 19:45 #9
Det ved jeg ikke, men det kan du prøve om det gør...
Avatar billede apo Praktikant
27. marts 2004 - 20:00 #10
Bestillingsformularen og resultatsiden er på den samme ASP-side og kaldes via henholdvis 'bestilling.asp' og 'bestilling.asp?side=1' (for lige at sætte dig ind i strukturen)

Det jeg ønsker er at brugeren ikke kan gå ind og rette i de indtastede oplysninger og sende formen igen.
Avatar billede apo Praktikant
27. marts 2004 - 20:01 #11
... når brugeren først er på 'bestilling.asp?side=1'
Avatar billede tzag_dk Nybegynder
27. marts 2004 - 20:09 #12
bestilling.asp:

if session("harbestilt0") = session.sessionID then
response.write("Du har allerede lavet en bestilling")
else
' Din bestillings formular
session("harbestilt0") = session.sessionID
end if


bestilling.asp?side=1:

if session("harbestilt1") = session.sessionID then
response.write("Du har allerede lavet en bestilling")
else
' Din bestillings formular
session("harbestilt1") = session.sessionID
end if


bestilling.asp?side=2:

if session("harbestilt2") = session.sessionID then
response.write("Du har allerede lavet en bestilling")
else
' Din bestillings formular
session("harbestilt2") = session.sessionID
end if

osv... Prøv om det ikke virker :-)
Avatar billede apo Praktikant
27. marts 2004 - 20:30 #13
Hmm... Det virker ikke. Jeg kan stadig vende tilbage til bestillingsformularen, rette oplysningerne og sende den samme bestilling endnu engang.
Avatar billede tzag_dk Nybegynder
27. marts 2004 - 20:32 #14
Er det når du klikker på tilbage i browseren?
Kan jeg ikke se det på din side?
Avatar billede tzag_dk Nybegynder
27. marts 2004 - 20:39 #15
Prøv at sætte det her ind i toppen lige efter <title>:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
Avatar billede tzag_dk Nybegynder
27. marts 2004 - 20:41 #16
Nej, sådan her i toppen af bestilling.asp

<% Response.CacheControl = "no-cache" %>>
<% Response.AddHeader "Pragma", "no-cache" %>
<% Response.Expires = -1 %>
Avatar billede tzag_dk Nybegynder
27. marts 2004 - 20:43 #17
<%
Response.Expires = -1
Response.AddHeader "pragma", "no-cache"
Response.CacheControl="no-cache"
Response.AddHeader "cache-control", "no-store"
%>
Avatar billede apo Praktikant
27. marts 2004 - 20:51 #18
Kanon! Det var lige det jeg efterlyste :-)

Mine sider er desværre ikke på nettet endnu, så der er ikke mulighed for at vise dem.

Men du skal have tak for hjælpen - Smid et svar, så er der points.

Apo
Avatar billede tzag_dk Nybegynder
28. marts 2004 - 17:16 #19
Ok... :-)
Svar!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester