Avatar billede codpiece Nybegynder
31. juli 2000 - 15:04 Der er 17 kommentarer og
2 løsninger

Vis cookiens expiredato vhj javascript?

Jeg har fudnet en bookmarklet på adressen http://book.trc.dk/ der kan vise indholdet af cookien for den side jeg står på.

Det sker ved at fyre denne linje af i url-vinduet:
java script:if(document.cookie.length<1){alert(\'Ingen cookie på dette websted.\')}else{alert(\'Cookie for dette websted: \'+document.cookie)}

I forbindelse med lidt debugging er jeg interesseret i at se cookiens expire dato. Er der mon en nem måde at tilpasse ovenstående til at vise expiredato i stedet for indhold?

Jeg kører med Netscape, ved ikke om der er syntax-forskel med IE

// Codpiece
Avatar billede el_gnu Nybegynder
31. juli 2000 - 20:26 #1
måske dette kunne virke (utestet)

java script:if(document.cookie.length<1){alert(\'Ingen cookie på dette websted.\')}else if(document.cookie.indexOF(\'expires=\') != -1){alert(\'Cookie udløbsdato for dette websted: \'+document.cookie.slice(document.cookie.indexOf(expires=) + 8, 29))}

Hvis udløbsdatoen er før den 10nde i en måned giver scriptet en fejl og det sidste tal, 29, skal ændres til 28
Avatar billede codpiece Nybegynder
01. august 2000 - 01:59 #2
Desværre - den fejler på testen if(document.cookie.indexOF(\'expires=\') != -1) og derfor komemr der ikke noget resultat.

(Jeg har testet med ekspertens cookie, men det ser ud til at være samme problem for andre sites)

// Codpiece
Avatar billede olebole Juniormester
01. august 2000 - 04:21 #3
<ole>
Måske fordi syntaksen lugter lidt af gnu (...gnæk, gnæk!) ;o))
JavaScript var oprindelig case-sensitive i høj grad, hvilket vist er taget lidt af med årene (og måske i takt med at programmørene ikke synes at hænge sig i den slags \'detaljer\'...?).
Det hedder dog stadig \'indexOf(\'....\')\' hver - og ikke kun hver anden gang! ;o)
/Vh
</bole>
Avatar billede el_gnu Nybegynder
01. august 2000 - 13:10 #4
Lige et lille deffensive muuuh fra gnuen ;-)

Man skal selvfølgelig hænge sig meget i case sensitivitet(dejlig fordanskning :-) men mit keyboard\'s shift tast klistrer sig fast (li\'som tøserne fredag aften he he he) og det gør det ekstra sjovt at kompile div. java progs. med fejl som STring, IMAge o.l.

(-: el Gnu
Avatar billede el_gnu Nybegynder
01. august 2000 - 13:14 #5
Jeg opdage lige en ekstra lille \'bummmert\'

java script:if(document.cookie.length<1){alert(\'Ingen cookie på dette websted.\')}else if(document.cookie.indexOf(\'expires=\') != -1){alert(\'Cookie udløbsdato for dette websted: \'+document.cookie.slice(document.cookie.indexOf(\'expires=\') + 8, 29))}
Avatar billede olebole Juniormester
01. august 2000 - 14:17 #6
Et nyt keyboard kan vel klare det ene problem. En effektiv body-shampoo kan muuuhligvis klare det andet med tøserne fredag aften!
Undskyld...men det var en lidt høj serv - så jeg ku\' ikke nære mig ;o))
/Med venlig muuuh.
Avatar billede codpiece Nybegynder
01. august 2000 - 16:24 #7
Stadigvæk samme problem - i selve cookien er der ikke noget felt der hedder expires. Er det ikke et specielt felt? Noget med document.cookie.expires?

// Codpiece
Avatar billede el_gnu Nybegynder
02. august 2000 - 11:43 #8
Jeg er ingen cookie ekspert, men efter min bedste overbevisning er måden man skriver en udløbsdato at skrive \"expires=<GMT tid>\" og derfor må måden man henter udløbsdatoen være ovenstående.

olebole => DEn tager jeg til mig 8-)
Avatar billede codpiece Nybegynder
07. august 2000 - 01:27 #9
el_gnu, olebole > Er der en der gider at prøve...? Jeg er total idiot når det kommer til cookies og javascripts.

// Codpiece
Avatar billede el_gnu Nybegynder
07. august 2000 - 08:09 #10
Jeg prøver i aften, but don\'t get your hopes too high :-)
Avatar billede el_gnu Nybegynder
08. august 2000 - 20:22 #11
Sorry, no luck :-(
Avatar billede olebole Juniormester
08. august 2000 - 21:35 #12
Hvis jeg skal være ærlig, så tror jeg ikke man MÅ få adgang til expire-tidspunktet! Mon ikke det af sikkerheds mæssige årsager er \'lukket land\'? Det er der jo en del, der er i de sprog, vi arbejder i - og tak Gud og W3 consortiet for det!  ;o)

Jeg prøver lige at tippe Erik Jacobsen.
/Vh
Avatar billede codpiece Nybegynder
08. august 2000 - 21:59 #13
Vil det sige, at expire-feltet er write-only?

Jeg havde ikke tænkt på det med sikkerheden, men OK - hvis det ikke kan lade sig gøre at vise expire-tidpunktet, så ryger pointene til den, der kan få skruet en bookmarklet sammen, der kan bruges til at expire en cookie på den aktuelle side.

Eller er det mon også noget jeg har misforstået? Jeg ved man kan tilføje sine egne kommentarer til en sites cookie:

java script:q7Hm8=prompt(\'Comment...\',\'\');if(q7Hm8!=null){pVj5D=86400000*prompt(\'Expires in...(days)\',\'15\');dT9v=new Date;dT9v.setTime(dT9v.getTime()+pVj5D);void(document.cookie=\'cOmM3enT=\'+escape(q7Hm8)+\'; expires=\'+dT9v.toGMTString())}else{void(null)}

Og læse den igen:

java script:dL8=document.cookie.indexOf(\'cOmM3enT\');if(dL8!=-1){d7n=document.cookie.substring(dL8+9,document.cookie.length);uHm=d7n.indexOf(\';\');dUP=(uHm==-1)?d7n.length:uHm;void(prompt(\'Comment:\',unescape(d7n.substring(0,dUP))))}else{alert(\'No comment.\')}

// Codpiece
Avatar billede olebole Juniormester
08. august 2000 - 22:32 #14
En cookie er en kodestump, en side sætter i din browser og den kodestump kan de ændre på.
Du kan vel aflæse kagen og sætte en med det samme navn, der udløber efter 1 sekund...?!?
/Vh
Avatar billede erikjacobsen Ekspert
08. august 2000 - 22:37 #15
HTTP-protokollen definerer jo hvordan man snakker om cookies mellem server
og klient (browser). Når serveren sætter en cookie, kan den give udløbsdato
med. Men når den modtager en cookie følger udløbsdatoen ikke med. Der
er simpelthen ingen syntaks for det i HTTP.

\"Vel er jeg ikke Cæsar, og dette ikke Rubicon, men dog siger jeg: Jacta
es alea\", som Chr. IV siger i Elverhøj, da han skal krydse Tryggevælde Å.

Og vel er en cookie i JavaScript ikke det samme som en cookie i HTTP, men
dog alligevel. Man har valgt at resultatet af at forespørge på en cookie skal
give samme resultat, som hvis man læste den i HTTP-protokollen. Derfor
er udløbsdato ikke med, og kan ganske enkelt ikke fås vha. document.cookie.

Det har næppe noget med sikkerhed at gøre.
Avatar billede olebole Juniormester
08. august 2000 - 22:44 #16
Jeg bøjer mig i støvet for vor lærde ven - såvel hvad angår kageopskrifter som den historiske viden  ;o)

Er det rigtig, hvad jeg har hørt? At du skulle være konsulent for Piet van Deurs...eller var det Peter vand Dørs?...Hehe!
/Vh
Avatar billede codpiece Nybegynder
13. august 2000 - 21:26 #17
Der er åbenbart ingen løsning på problemet.

Men lige nu har jeg ikke nogen svar at give pointene til - gider I oprette et svar hver?
Eller endnu bedre: Hvis der er en der kan skrive en JS-stump, der kan expire cookien på en bestemt side, så falder der lidt krummer af der også...

// Codpiece
Avatar billede erikjacobsen Ekspert
13. august 2000 - 22:02 #18
Ok - jeg vil da godt have et enkelt point for min kommentar
Avatar billede el_gnu Nybegynder
14. august 2000 - 08:15 #19
Os\'mig, os\'mig :-))
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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