Avatar billede tblaster Nybegynder
20. august 2003 - 13:39 Der er 11 kommentarer og
1 løsning

Hvordan skal cookies laveves i JavaScript

Med følgende kan jeg oprette en cookie vha. asp:

<%
Response.Cookies("Login")("Brugernavn") = Request.Form("brugernavn")
Response.Cookies("Login")("Password") = Request.Form("password")
Response.Cookies("Login").expires = Date+365
%>

Hvordan opretter jeg samme cookie med JavaScript?
Avatar billede roenving Novice
20. august 2003 - 13:47 #1
Disse funktioener er lavet til at angive een parameter ad gangen, de kan sagtens laves om !-)

<script language="javascript" type="text/javascript">
function skrivCookie(name,value,expTime,path){//Tid i dage
    switch(skrivCookie.arguments.length){
        case 1,2:
            var expTime = 0;
            var path = "/";
        case 3:
            var path = "/";
    }
    var exp = new Date().getTime()+expTime*24*60*60*1000;
    exp = new Date(exp).toGMTString();
    var cook = name + " = " + escape(value) + ";expires=" + exp + ";path=" + path;
    document.cookie = cook;
}
function hentCookie(name){
    if (document.cookie){
        var n = document.cookie.indexOf(name+"=");
        if (n>-1){
            var val = document.cookie.substring(n+name.length+1);
            n = val.indexOf(";");
            if(n>-1)val=val.substring(0,n);
            return unescape(val);
        }
    }
}
</script>
Avatar billede tblaster Nybegynder
20. august 2003 - 13:57 #2
Så er det bare at jeg kigger på overstående og tænker: "Det er da løgn!"
Det kan da ikke passe at det skal fylde så meget. Det er da også vildt indviklet ... slet ikke for en normal person!
Avatar billede roenving Novice
20. august 2003 - 14:08 #3
Der er to funktioner: både til at skrive og til at hente værdier fra en cookie !-)

Og så indviklet er det heller ikke, de funktioner er bare lavet så de _virker_ hvis du præcis vil have skrevet hvad du har angivet ovenfor, kan vi:

<script language="javascript" type="text/javascript">
function skrivCookie(brugernavn,password){
    var exp = new Date().getTime()+365*24*60*60*1000;
    exp = new Date(exp).toGMTString();
    var cook = "Brugernavn="+escape(brugernavn)+";Password="+escape(password)+";expires=" + exp
    document.cookie = cook;
}
</script>
Avatar billede tblaster Nybegynder
20. august 2003 - 14:11 #4
Min første asp udskrev jeg vha. følgende:
<%=request.cookies("Login")("Brugernavn")%>

Jeg kan vel godt udskrive overstående vha overstående ... men hvad hedder min cookie? Skal jeg bare bruge:
<%=request.cookies("Brugernavn")%>
<%=request.cookies("Password")%>
Avatar billede tblaster Nybegynder
20. august 2003 - 14:13 #5
Jeg forstår heller ikke dette:
+escape(brugernavn)+

Er det den måde jeg hente værdien fra Request.Form("brugernavn") eller loginForm.password.value?
Avatar billede tblaster Nybegynder
20. august 2003 - 14:14 #6
Glem sidste ... det var en stavefejl der forvirede mig ... :-)
Avatar billede tblaster Nybegynder
20. august 2003 - 14:18 #7
Jeg har prøvet at oprette en fil med følgende:

<script language="javascript" type="text/javascript">

function skrivCookie(brugernavn,password){
    var exp = new Date().getTime()+365*24*60*60*1000;
    exp = new Date(exp).toGMTString();
    var cook = "Brugernavn=Test;Password=test;expires=" + exp
    document.cookie = cook;
}

</script>

<%=request.cookies("Brugernavn")%>

<br><br>

<script language="javascript" type="text/javascript">

function hentCookie(brugernavn){
    if (document.cookie){
        var n = document.cookie.indexOf(name+"=");
        if (n>-1){
            var val = document.cookie.substring(n+name.length+1);
            n = val.indexOf(";");
            if(n>-1)val=val.substring(0,n);
            return unescape(val);
        }
    }
}

</script>


Men jeg får ikke skrevet noget ud på min side.
Avatar billede roenving Novice
20. august 2003 - 14:28 #8
Hvis du 'bare' skal teste skal den anden funktion se sådan ud:

function hentCookie(){
    if (document.cookie){
        var n = document.cookie.indexOf("Brugernavn=");
        if (n>-1){
            var val = document.cookie.substring(n+11);
            n = val.indexOf(";");
            if(n>-1)val=val.substring(0,n);
            document.write( unescape(val))
        }
    }
}

</script>
Avatar billede tblaster Nybegynder
20. august 2003 - 14:33 #9
Kan du ikke skrive en kode der virker hvor jeg kan lagre information i en cookie og hente det igen?

Jeg kan ikke finde rundt i det. Jeg har prøvet me dette:
<script language="javascript" type="text/javascript">

function skrivCookie(brugernavn,password){
    var exp = new Date().getTime()+365*24*60*60*1000;
    exp = new Date(exp).toGMTString();
    var cook = "Brugernavn=Test;Password=test;expires=" + exp
    document.cookie = cook;
}


function hentCookie(){
    if (document.cookie){
        var n = document.cookie.indexOf("Brugernavn=");
        if (n>-1){
            var val = document.cookie.substring(n+11);
            n = val.indexOf(";");
            if(n>-1)val=val.substring(0,n);
            document.write( unescape(val))
        }
    }
}

</script>

Men der sker intet.
Avatar billede roenving Novice
21. august 2003 - 05:54 #10
document.write( unescape(val))

ændrer du bare til:

alert( unescape(val))

-- så kan du se det !-)
Avatar billede tblaster Nybegynder
21. august 2003 - 09:03 #11
Nope ... jeg kan stadig ikke se noget ... men jeg kan heller ikke finde ud af at få get noget i min cookie. Hvordan får jeg i denne cookie:

<script language="javascript" type="text/javascript">
function skrivCookie(brugernavn,password){
    var exp = new Date().getTime()+365*24*60*60*1000;
    exp = new Date(exp).toGMTString();
    var cook = "Brugernavn="+escape(brugernavn)+";Password="+escape(password)+";expires=" + exp
    document.cookie = cook;
}
</script>

Brugernavnet til at være: Test
Password: 1234

???
Avatar billede tblaster Nybegynder
21. august 2003 - 11:13 #12
Fandt endelig en kode der virker!

function setCookie(Navnpåcookie, value, expiredays)
{ var ExpireDate = new Date ();
ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
document.cookie = Navnpåcookie + "=" + escape(value) +
((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString());
}

  setCookie('SaveLogin_Brugernavn',inputBrugernavn,365)
  setCookie('SaveLogin_Brugerkode',inputBrugerkode,365)
  setCookie('SaveLogin_Savelogin','Checked',365)
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