Avatar billede pv45 Nybegynder
15. maj 2005 - 19:40 Der er 17 kommentarer og
1 løsning

To cookies

Er det muligt fra én html-fil at oprette to cookies? Jeg har brug for at gemme over 20 feltoplysninger, som en cookie normalt kan indeholde.

Hvis det er muligt, hvordan er scipt-koden så ?
Avatar billede olebole Juniormester
15. maj 2005 - 19:50 #1
<ole>

- som den gør, når du opretter én cookie. Du sætter bare en mere med et andet navn

/mvh
</bole>
Avatar billede olebole Juniormester
15. maj 2005 - 19:55 #2
- men er du sikker på, der ikke er noget, du har misforstået? Tallet 20 ligner det max-antal cookies, du kan sætte pr. domæne  :)
Avatar billede roenving Novice
15. maj 2005 - 19:57 #3
Du skal bare joine alle dine værdier, så de skrives som een værdi !-)
Avatar billede barklund Nybegynder
15. maj 2005 - 19:59 #4
(hvilken rfc beskriver, at max 20 cookies er tilladt per domæne? eller er det bare en de-facto standard?)
Avatar billede roenving Novice
15. maj 2005 - 20:12 #5
Rfc 2109: http://www.faqs.org/rfcs/rfc2109.html, hvor det er sat som minimum i: 6.3  Implementation Limits !-)

-- men mine browsere er helt enige, der kan nøjagtig være 20 cookies !o]
Avatar billede olebole Juniormester
15. maj 2005 - 20:12 #6
barklund >> Det har jeg fra hestens egen mule  :)

There are limitations on the number of cookies that a client can store at any one time. This is a specification of the minimum number of cookies that a client should be prepared to receive and store.
- 300 total cookies
- 4 kilobytes per cookie, where the name and the OPAQUE_STRING combine to form the 4 kilobyte limit.
- 20 cookies per server or domain. (note that completely specified hosts and domains are treated as separate entities and have a 20 cookie limitation for each, not combined)
Servers should not expect clients to be able to exceed these limits. When the 300 cookie limit or the 20 cookie per server limit is exceeded, clients should delete the least recently used cookie. When a cookie larger than 4 kilobytes is encountered the cookie should be trimmed to fit, but the name should remain intact as long as it is less than 4 kilobytes.

http://wp.netscape.com/newsref/std/cookie_spec.html
Avatar billede pv45 Nybegynder
15. maj 2005 - 20:28 #7
Ok.Jeg har formuleret mig forkert. Jeg har sat én cookie lig med den tekst-fil der oprettes i Cookies-mappen, når cookien gemmes. Men som I forklarer kan tekst-filen max. indeholde 20 cookies pr. domæne.

Det lyder som en løsning med at joine. Kan roenving forklare det tekniske og hvordan jeg får det skilt ad, når oplysningerne skal bruges igen?
Avatar billede barklund Nybegynder
15. maj 2005 - 20:28 #8
Finfin, jeg var nu ellers inde og kigge på 2109, da jeg ikke lige kendte til de beskrevne begrænsninger, men kunne nu ikke finde noget. Så blev jeg det klogere :)
Avatar billede roenving Novice
15. maj 2005 - 20:37 #9
Har du det som et antal felter ?-)

-- skal du aflæse en hel form ?o]

-- så f.eks.

var e = form.elements,c=new Array();
for(i=0;i<e.length;i++){
  if(e[i].value!=""&&e[i].type!=button&&e[i].type!=submit){
    c[c.length] = e[i].name + ":" + e[i].value;
  }
}

document.cookie = form.name + "=" + c.join(",")+";expires=Wed Aug 24 18:21:11 UTC+0200 2005";

-- når du så skal hente dem splitter du først på kommaerne og derefter på kolonet !-)

-- bemærk dog grænsen på de 4096 byte pr. cookie, så måske skal du tage den i små bidder !o]
Avatar billede roenving Novice
15. maj 2005 - 20:38 #10
Uff ...

  if(e[i].value!=""&&e[i].type!="button"&&e[i].type!="submit"){
Avatar billede pv45 Nybegynder
15. maj 2005 - 20:47 #11
Ja, det er felter fra en formular, jeg skal genbruge. Umiddelbart ser ideen i roenvinges script rigtig ud. Tak for dit hurtige svar. Jeg vender tilbage, når jeg har afprøvet det.
Avatar billede olebole Juniormester
15. maj 2005 - 21:07 #12
Hvis loftet på 4096 kan blive et problem, kan der checkes i løkken med noget à la:

if ( kageNavn.length+(c.toString().length-(c.length-1))>4000 ) {
    // Du er ved at ramle mod loftet og må gøre noget
}

- hvor 'kageNavn' er en variabel, der indeholder navnet på cookie'en
Avatar billede roenving Novice
15. maj 2005 - 21:11 #13
-- men han joiner jo alligevel med en karakter, så du skal vel ikke fratrække join-karaktererne ?-)
Avatar billede pv45 Nybegynder
16. maj 2005 - 16:57 #14
Jeg kan ikke få roenvinges script til at fungere. Tilsyneladende danne scriptet ikke en cookie-fil. Er syntaksen rigtig? Jeg har prøvet at skifte "form" ud med "document.forms" uden det dog har haft nogen virkning.

Jeg har lagt roenvinges script ind i en funktion, som aktiveres fra en <A HREF>, men det har vel ikke nogen betydning.
Avatar billede roenving Novice
16. maj 2005 - 17:01 #15
-- nej, form er bare en variabel, som du skal erstatte med en variabel, som peger på din form (og det er faktisk uklogt at bruge specielt ordet form som variabel, så prøv noget andet !-)

var f = document.forms[0];
var e = f.elements,c=new Array();
for(i=0;i<e.length;i++){
  if(e[i].value!=""&&e[i].type!=button&&e[i].type!=submit){
    c[c.length] = e[i].name + ":" + e[i].value;
  }
}

document.cookie = f.name + "=" + c.join(",")+";expires=Wed Aug 24 18:21:11 UTC+0200 2005";
Avatar billede pv45 Nybegynder
20. maj 2005 - 19:48 #16
Undskyld jeg har været lidt længe om at kommentere jer. Men jeg har været optaget af at få det til at fungere og det gør det nu. Hurra!

Min form skal ikke postes. Min <A HREF> åbner i stedet en blanket, som med en document.write indsætter oplysningerne fra cookien.

Det jeg havde brug for var derfor kun denne del af roenvings script:
document.cookie = f.name + "=" + c.join(",")+";expires=Wed Aug 24 18:21:11 UTC+0200 2005";

Samt oplysningen om at splitte cookien bagefter. Dog med den ændring at splitningen først skal ske på lighedstegnet fra f.name +"="+ og derefter på kommaerne fra +c.join(",")

Det, der har drillet mig her til sidst, er at mange af mine formfelter har indbygget en if-sætning med en else-værdi, der er tom "". Javascript kan godt håndtere, at der inde i "" indsættes blanktegnet &nbsp; således her "&nbsp;". Bare ikke i en forms radio-arrays har jeg fundet ud af!

Sender du et svar roenving, så du kan få dine point? Men ellers tak for hjælpen begge to.
Avatar billede roenving Novice
21. maj 2005 - 13:44 #17
Velbekomme '-)
Avatar billede roenving Novice
24. maj 2005 - 01:46 #18
-- og tak for point ;~}
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