Avatar billede klyde Nybegynder
21. august 2001 - 23:08 Der er 13 kommentarer og
2 løsninger

Dø forbanede Cookies!!!

Hello...

Er det ikke muligt at slette de fordømte Cookies igen efter man har oprettet dem på klienten???

Jeg har en login funktion hvor man kan vælge at logge ind automatisk ved hjælp af cookies.
Derfor skal man sedfølgeligt også have nulighed for at slette dem igen via en form på HP\'en (right!)...

Så inden jeg begår selvmord over det lort, er der PLEEEEEEEASE nogen der gider hjælpe mig?
Jeg har spurt 1000 mennesker men der er ingen der har nogen hjærner :)

.:hjælp:.
Avatar billede keysersoze Ekspert
21. august 2001 - 23:19 #1
du kan ikke decideret slette cookien - men du skal ind og ændre dens værdier - det gør du på akkurat samme måde som hvis du skulle opertte en ny cookie

fx hvis du har lavet en cookie med:

Response.Cookies(\"autologin\") = yes

skal du nu ændre den på samme måde som den blev lavet til eks.

Response.Cookies(\"autologin\") = no
Avatar billede tmceu Praktikant
21. august 2001 - 23:24 #2
Du kan slette en cookie ved at sætte udløbsdato bagud i tiden, eks.
Response.Cookies(strCookieName).Expires = Date() - 1
Avatar billede klyde Nybegynder
21. august 2001 - 23:24 #3
Ok...
Så hvis jeg har en cookie der ser sådan ud:
------------------------------------------------------
Response.Cookies(\"VSmS\")(\"ID\") = Session(\"Bruger_ID\")
Response.Cookies(\"VSmS\")(\"Navn\") = Session(\"Navn\")
Response.Cookies(\"VSmS\")(\"Pass\") = Request(\"Password\")
------------------------------------------------------
Så kan jeg \"slette\" den igen ved at skrive:
------------------------------------------------------
Response.Cookies(\"VSmS\")(\"ID\") = \"0\"
Response.Cookies(\"VSmS\")(\"Navn\") = \"0\"
Response.Cookies(\"VSmS\")(\"Pass\") = \"0\"
------------------------------------------------------
Er det rigtigt?
Avatar billede klyde Nybegynder
21. august 2001 - 23:26 #4
tmceu >>> OK, Jeg vil prøve det...
Avatar billede keysersoze Ekspert
21. august 2001 - 23:41 #5
ved at sæte udløbsdatoen på vil autologin jo ikke få noget effekt og er derfor ikke særlig smart...

at nulstille, ændre eller kald det hvad du vil, kan man ændre værdien så cookien stadig er der, men bare ikke logger ind automatisk
Avatar billede tmceu Praktikant
21. august 2001 - 23:48 #6
keysersoze >> man kan også vende det om; hvorfor skal man smide unødigt om sig med cookies på brugerens harddisk ? For ikke at nævne at en cookie der indeholder totalt unødvendig information, alligevel vil blive sendt med alle requests fra klienten til serveren = unødig belastning af både klient og server.

I det øjeblik de vælger at ville have autologin igen, opretter man selvfølgelig cookien på ny.
Avatar billede klyde Nybegynder
21. august 2001 - 23:51 #7
Jeg går i seng, vi kan følge op på det i morgen...

Nat nat
Avatar billede tomsommer Juniormester
21. august 2001 - 23:52 #8
skriv

Response.Cookies(\"VSmS\").Expires = Date() - 1
Avatar billede keysersoze Ekspert
21. august 2001 - 23:57 #9
tmceu - hvad idé er der så i at oprette en cookie for at man automatisk kan logge ind fremover - hvis den alligevel bliver slettet efter 1 dag?

hvis man så er rigtig smart, så laver man begge dele - fjerner indholdet så man ikke bliver logget automatisk ind - OG får den slettet efter en dag
Avatar billede tmceu Praktikant
22. august 2001 - 00:04 #10
keysersoze >> jeg tror ikke du har forstået spørgsmålet rigtigt, eller også har jeg ikke :-)

klyde tilbyder sine brugere at de kan vælge at lade sig logge ind automatisk, præcist som her på eksperten. Vælger man dette, oprettes en cookie med de nødvendige informationer. Startsiden på sitet, typisk default.asp vil så kigge efter om der er en cookie, kontrollere brugernavn og password og derefter sende brugeren ind på sitet.

Er der derimod ingen cookie, er autlogin ikke valgt og man beder derfor om brugernavn og password.

Dette er almindelig, anstændig anvendelse af cookies. Der er som jeg sagde tidligere, absolut ingen grund til at have en \"tom\" cookie liggende på brugerens harddisk, og slet ingen grund til at belaste alle requests med unødvendige data.
Avatar billede keysersoze Ekspert
22. august 2001 - 00:21 #11
tmceu >> men HAR man allerede valgt at logge ind automatisk så ligger der jo en cookie og her må der ikke være en expire dato- vil man så ændre dette så man ikke logger ind automatisk, så skal effekten jo træde i kraft med det samme, og at sætte expire til en dag frem træder det først i kraft senere og det er jo ikke smart

så enten skal expire sættes til \"NOW()\" (ved ikke om det vil virke egentlig) - eller man skal finde på at sammensmelte vores to forslag som tidligere skrevet
Avatar billede tmceu Praktikant
22. august 2001 - 00:28 #12
keysersoze >> Kig lige på mit første svar, hvor jeg skriver:

Du kan slette en cookie ved at sætte udløbsdato BAGUD i tiden, eks.
Response.Cookies(strCookieName).Expires = Date() - 1

eller som tomsommer, der skrev den korrekt til klyde\'s eksempel: Response.Cookies(\"VSmS\").Expires = Date() - 1

Dette sætter den én dag bagud i tiden; date MINUS 1 og derfor er cookien straks udløbet.

Sådan er det, det virker. Om dine gentagne forsøg på at få nogle point ved at kombinere svarene lykkedes, er op til spørgeren. Jeg har vist givet nok udtryk for min mening :-)
Avatar billede klyde Nybegynder
22. august 2001 - 08:13 #13
keysersoze >>> Jeg må desvære give tmceu ret.
Dit forslag kan bruges, men tmceu\'s forslag er lige det jeg manglede.

For at afslutte dette så har jeg en kode der siger at når man vælger at logge ind automatisk skal cookien \"leve\" i 365 dage:
Response.Cookies(\"VSmS\").Expires = Date+365

Når jeg så sætter datoen en dag tilbage:
Response.Cookies(\"VSmS\").Expires = Date-1
vil computeren tro at cookien er for gammel og dermed slette den.

Mange tak for jeres hjælp...

keysersoze = 10 point for ihærdighed.
tmceu = 50 for bedste svar.
Avatar billede keysersoze Ekspert
22. august 2001 - 09:41 #14
hov... minus :o)
Avatar billede tmceu Praktikant
22. august 2001 - 10:30 #15
Takker

keysersoze >> tak for den gode diskussion :-)
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