Avatar billede sk-man Nybegynder
03. juli 2008 - 21:13 Der er 7 kommentarer

Slet entry i cookie collection

Hejsa

ASP (ikke .net) spørgsmål:

Jeg har en cookie som indeholder en collection som f.eks. nedenstående.

Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Smith"
Response.Cookies("user")("country")="Norway"
Response.Cookies("user")("age")="25"


Hvordan får jeg fjernet den entry i collection som hedder "country"? Har søgt nettet men har ikke fundet svar.

Har prøvet:

Response.Cookies("user")("country") = null  (resulterede i exception)

Response.Cookies("user")("country") = "" (entry er stadig i cookien, bare med tom værdi)

Håber der er en af jer der kan hjælpe.
Avatar billede softspot Forsker
03. juli 2008 - 22:36 #1
Det kunne klares ved at lade cookien udløbe og genskrive de værdier som du vil bibeholde:

Response.Cookies("user").Expires = dateadd("d", -1, now)
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Smith"
Response.Cookies("user")("age")="25"

eller måske lave en funktion som kan gøre det på en mere generisk måde:

function removeCookieKey(cookieName, removeKey)
  dim key
  Response.Cookies(cookieName).Expires = dateadd("d", -1, now)
  if Request.Cookies(cookieName).HasKeys then
    ' Genopret de nøgler som ikke skal slettes...
    for each key in Request.Cookies(cookieName)
      if lcase(key) <> lcase(removeKey) then
        Response.Cookies(cookieName)(key) = Request.Cookies(cookieName)(key)
      end if
    next
  end if
end function
Avatar billede softspot Forsker
03. juli 2008 - 23:00 #2
Nå, det lader ikke rigtig til at fungere, da cookien tilsyneladende først udløber efter værdierne er forsøgt genskrevet, så det er altså ikke en farbar vej (jeg kan i det mindste ikke rigtig få det til at fungere)...
Avatar billede sk-man Nybegynder
04. juli 2008 - 07:50 #3
Nej, umiddelbart virker det ikke som den rigtige løsning, jeg kan heller ikke få det til at virker. Er der andre forslag? Ellers må jeg smide tingene i en DB i stedet for, men det ville jeg gerne undgå.
Avatar billede busschou Praktikant
04. juli 2008 - 10:01 #4
Kan man ikke gøre sådan her?
session.contents.remove("user")("country")
Avatar billede sk-man Nybegynder
04. juli 2008 - 18:23 #5
Den giver en HTTP 507

HTTP Error 507
507 Unexpected

The Web server encountered an unexpected error while communicating with the ASP service.

Please contact the server's administrator if this problem persists.
Avatar billede sk-man Nybegynder
04. juli 2008 - 18:24 #6
Jeg dropper cookies og smider dataen i en database i stedet for, men hvis der er nogle der har en løsning så er jeg meget nysgerrig
Avatar billede cpufan Juniormester
08. juli 2008 - 21:39 #7
Response.Cookies("user")("country").Expires = dateadd("d", -1, now)
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