Avatar billede weje Nybegynder
21. marts 2001 - 15:01 Der er 6 kommentarer og
1 løsning

Cookies Findes den??

Hvad F.... er der galt her:

if Request(\"mode\") = \"add\" then
    if not IsObject(Request.Cookies(ID)) then
        Antal = 0
    else
        Antal = Request.Cookies(ID)
    end if
    response.cookies(ID) = Antal +1
    response.cookies(ID).Expires = Now() + 20
end if

Jeg får følgende fejl:
An array index is out of range (Linie 2)

Meningen er at hvis cookien IKKE findes skal den sætte antal til 0, så der kommer til at være 1. Hvis den findes skal den bare tælle èn op.

Cookie format:
Varenr=antal

Weje
Avatar billede tpiil Nybegynder
21. marts 2001 - 15:04 #1
if Request(\"mode\") = \"add\" then
    if not IsObject(Request.Cookies(\"ID\")) then
        Antal = 0
    else
        Antal = Request.Cookies(\"ID\")
    end if
    response.cookies(\"ID\") = Antal +1
    response.cookies(\"ID\").Expires = Now() + 20
end if
Avatar billede weje Nybegynder
21. marts 2001 - 15:06 #2
Nej ID er jo Varenr.
Før det her:
ID = Request(\"ID\")
Avatar billede kasseper Nybegynder
21. marts 2001 - 15:08 #3
har du prøvet med
if Request.Cookies(ID).HasKeys() then
.....
Avatar billede weje Nybegynder
21. marts 2001 - 15:16 #4
Nej, det er ikke et noget dictionary.
Eks.
Cookies:
1=2    betyder Varenr = 1, stk = 2

Hvis cookien findes skal (og kan) den sætte cookien til 1=3.
Men hvis den ikke findes skal den lave en ny cookie der hedder ID=1 (ID er det nye varenr)
Avatar billede ldanielsen Nybegynder
21. marts 2001 - 21:41 #5
if Request(\"mode\") = \"add\" then
    if Request.Cookies(ID) <> \"\" then
        Antal = 0
    else
        Antal = Request.Cookies(\"ID\")
    end if
    response.cookies(ID) = Antal +1
    response.cookies(ID).Expires = Now() + 20
end if

Ganske enkelt, helt ulogisk, men det virker! Hvis du spørger til en cookie der ikke findes, aldrig har været der, og som du ikke kunne drømme om at oprette, så er den lig med \"\".

Du kan også erstatte isObject med isNull, hvis du bedre kan lide det.
Avatar billede weje Nybegynder
25. marts 2001 - 15:21 #6
Jeg har fundet fejlen nu. ID var et varenummer, så hvis jeg prøvede at finde Request.Cookies(ID) (ID er 6) ville den prøve at finde den 6. cookie og ikke den cookie der hedder \"6\", så det var der problemet lå.
Avatar billede ldanielsen Nybegynder
25. marts 2001 - 21:09 #7
Nå ja! Navnet på en cookie er naturligvis altid en tekststreng! Den var der altså ikke nogen der kunne fange :o)

Hilsen Lars
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