19. december 2005 - 22:22
Der er
18 kommentarer og 1 løsning
problem med cookie
Hej.. Jeg har noget problem med at få denne kode til at virke.. <% Dim streng, arr, err streng = request.cookies("eFrinds.dk")("Hot_Vote") arr = SPLIT(streng, "," ) for i = 1 to UBOUND(arr) if arr(i) = id then err = "1" end if next if err = "1" then %> Der sker ikke noget selv om id og en af arr er ens. Og jeg er 100% sikker på de er ens. Har prøvet med response.write, og det viste at de var ens.. Hvad kan der være galt?
Annonceindlæg fra Netic
19. december 2005 - 22:34
#1
Så er det nok fordi den ene tolkes som tal og den anden som en streng. Prøv at konverter begge til int sådan her: if int(arr(i)) = int(id) then
19. december 2005 - 22:55
#2
Du er opmærksom på at arrays er nulbaserede i VBScript, ikk'? Jeg hæfter mig ved at du starter dit loop fra 1 og ikke 0, så jeg vil bare sikre mig at du gør det med vilje...
20. december 2005 - 21:29
#3
Nu har jeg sat det sådan her: for i = 0 to UBOUND(arr) if int(arr(i)) = id then err = "1" end if next men nu kommer den med en fejl: Type mismatch: '[string: ""]' i if int(arr(i)) = id then Okay softspot, neh det var jeg ikke.. Takker ;)
21. december 2005 - 09:37
#4
Kan du ikke prøve at vise hvad den streng du prøver at splitte indeholder, samt hvad id indeholder? Du kan f.eks. lave noget fejlhåndteringskode omkring dit loop der udskriver værdierne i det tilfælde at der opstår fejl (så er det lidt lettere at finde ud af hvad der går galt). <% Dim streng, arr, err streng = request.cookies("eFrinds.dk")("Hot_Vote") arr = SPLIT(streng, "," ) on error resume next for i = 0 to UBOUND(arr) if arr(i) = id then err = "1" end if if err.number <> 0 then response.write "Fejl: streng = " & streng & "<br>arr(" & i & ") = " & arr(i) & "<br>id = " & id & "<br>" err.clear end if next on error goto 0 if err = "1" then %>
21. december 2005 - 21:18
#5
så skriver den således: Fejl: streng = ,1 arr(0) = id = 1 Fejl: streng = ,1 arr(1) = 1 id = 1
21. december 2005 - 21:23
#6
Det vil sige at det første element er tomt og kan derfor ikke konverteres til en int. Det du bør gøre inden du konverterer en streng er at checke for om den er tom. <% Dim streng, arr, err streng = request.cookies("eFrinds.dk")("Hot_Vote") arr = SPLIT(streng, "," ) for i = 0 to UBOUND(arr) if len(arr(i)) > 0 and isnumeric(arr(i)) then if arr(i) = id then err = "1" end if end if next if err = "1" then %>
21. december 2005 - 21:24
#7
brugen af isnumeric er naturligvis kun hvis værdien altid forventes at være et tal... :)
21. december 2005 - 21:25
#8
Eller lade den sammenligne som teskt: if CStr(""&arr(i)) = CStr(id) then
21. december 2005 - 21:26
#9
det virker stadig ikke.. Den sætter ikke err til 1.. Den er altid tom selvom der er noget i cookien..
21. december 2005 - 21:31
#10
Prøv at bruge et andet variable navn end err da det også er navnet på error objebtet, umiddelbart kan det give nogle problemmer. eks: errStatus = "1"
21. december 2005 - 21:33
#11
stadig ikke :(
21. december 2005 - 21:34
#12
eagleeye >> Du lever op til dit navn ;D
21. december 2005 - 21:35
#13
Prøv at vise din kode som den er lige nu.
21. december 2005 - 21:35
#14
Dvs. flg. fungerer altså ikke: <% Dim streng, arr, errStatus streng = request.cookies("eFrinds.dk")("Hot_Vote") arr = SPLIT(streng, ",") for i = 0 to UBOUND(arr) if cstr(arr(i)&"") = cstr(id) then errStatus = "1" end if next if errStatus = "1" then %>
21. december 2005 - 21:37
#15
<% Dim streng, arr, errStatus streng = request.cookies("eFrinds.dk")("Hot_Vote") arr = SPLIT(streng, "," ) for i = 0 to UBOUND(arr) if len(arr(i)) > 0 and isnumeric(arr(i)) then if arr(i) = id then errStatus = "1" end if end if next if errStatus = "1" then %>
21. december 2005 - 21:38
#16
Prøv lige den kode fra 21/12-2005 21:35:48
21. december 2005 - 21:39
#17
jo det virkede.. Det havde jeg ikke lige fået ændret det med if cstr(arr(i)&"") = cstr(id) then..
21. december 2005 - 21:48
#18
smider du et svar ??
21. december 2005 - 22:21
#19
eagleeye eller moi? Jeg synes egentlig eagleeye fortjener point - det var ham der havde fat i de vigtigste pointer :)
Kurser inden for grundlæggende programmering