cookie gemmes ikke når man skifter side (men kun den ene vej)
Hej, jeg har et meget mystisk cookie problem:
Jeg har en side hvor jeg via et href loader den samme side med dette link "default.asp?Mode=insert&VareID=xxx1" I toppen af default siden griber jeg eventen og enten tilføjer 1 til cookiens værdi eller laver cookien med værdien 1, og sender videre til kurv.asp:
strMode = Request.QueryString("mode") strvareID = Request.QueryString("vareID") if strMode = "insert" then Found = False for each Key in Request.Cookies("Kurv") if Key = strvareID then Response.Cookies("Kurv")(Key) = CStr(CInt(Request.Cookies("Kurv")(Key)) + 1) Found = True exit for end if next if not Found then Response.Cookies("Kurv")(strvareID) = "1" end if response.redirect("dynamisk/kurv.asp") end if
På kurv siden lister jeg alt indholdet af cookien, og giver mulighed for at rette antallet: (textfeltet har samme navn som varenummeret)
If Request.Form("kurv") <> "" Then for each item in Request.Form for each key in Request.Cookies("Kurv") if key = item then Response.Cookies("Kurv")(key) = Request.Form(item) exit for end if next next End if
det virker fint, og det nye antal står i kurven. Men så snart man opdaterer kurv siden ved at klikke på linket til den eller går tilbage til default siden, så rettes antallet i cookien til det antal der var før opdateringen i kurv.asp
- Dvs din cookie ("Kurv") indeholder nøgler (f.eks. "xxx1", "xxx2") med med en værdi, der fortæller hvor mange stk der er af "xxx1" (osv)..
- Denne linie tilføjer 1 til antallet, korrekt?: Response.Cookies("Kurv")(Key) = CStr(CInt(Request.Cookies("Kurv")(Key)) + 1) Dvs, den tager ikke højde for at man f.eks. lægger 5 stk til..?
- Hvis "xxx1" ikke findes i kurven, sættes den automatisk til 1..
Du har vel ikke en test-side, så vi kan se scriptet "in action"..?
Jeg ved ikke om du er rendt ind i det gamle problem med at en IIS/ASP-webserver ikke både kan lave en redirect (response.redirect("dynamisk/kurv.asp")) og samtidig lægge en cookie. Jeg synes ellers at have testet for nylig (½-1 år siden), at et par IIS ikke længere havde det problem.
Og så vil jeg da lige tilføje, at det der ASP er gammel teknologi, og egentlig værd at spilde sin tid på. Der er sket så meget, der vil gøre livet nemmere for dig: ASP.NET og andre teknologier.
Men hænger du fast i kviksandet kan løsningen være at lave en HTML side med en meta-redirect i stedet for.
...og egentlig ikke værd at spilde sin tid på.... ;)
Synes godt om
Ny brugerNybegynder
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.