Avatar billede john1 Juniormester
26. marts 2004 - 15:17 Der er 7 kommentarer

cookie bestemmer link

Når man besøger min hjemmeside får man følgende valg:

et link til over 16 år og et link til under 16 år.

Begge links linker til 2 forskellige forsider. Kan det så lade sig gøre at når man trykker f.eks. på linket over 16år så sætter den en cookie. Og på en eller anden måde skal jeg sætte et script således at vis f.eks. man har trykket linket over 16 år så kommer man til den forside der tilhøre dem over 16 år. Dvs. når man trykker på home så ryger man ikke tilbage til dem under 16 år. Grunden til jeg skal bruge dette script er at nogle af mine sider deles mellem dem under 16 år og over 16 år.

Kan man lige ledes lave en checkbox så man kan vælge ikke at få det valg igen. Altså så man automatisk kommer inden på den rette side igen(under/over 16 år). Er der nogen der har sådan et script?
Avatar billede roenving Novice
26. marts 2004 - 15:57 #1
Jeg ville lave det med to forskellige cookies, een med en kort udløbstid, f.eks. en time eller en dag, og een med en længere udløbstid, f.eks. et år ...

Og så lave en lillebitte index.html, som kun har til opgave at checke cookies og redirecte efter om de findes eller ikke findes, ca. sådan:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Redirect</title>
<script language="javascript" type="text/javascript">
  c1 = hentCookie('back');
  c2 = hentCookie('start');
  if(!c1 && !c2)location.href="dinStartSide.html";//den med over/under 16-links
  if(c1=='u16'||c2=='u16')location.href="sideU16.html";
  if(c1=='o16'||c2=='o16')location.href="sideO16.html";
</script>
<!-- her indsættes cookie-maskinen script-slut- og -start-tag lige efter hinanden kan udelades -->
<body></body>
</html>

På den side, hvor du har links indsætter du ligeledes cookie-maskinen, og aktiverer dette script onclick på dine links:

<script type="text/javascript">
function setCookie(link){
  exp = (document.FORMNAVN.CHECKBOXNAVN.checked)?365:1;
  skrivCookie(((exp==1)?'back':'start'),link,exp);
}
</script>

-- og dine links sådan:

<form name="FORMNAVN">
<a href="sideO16.html" onclick="setCookie('o16')">Jeg er over 16 år</a><br>
<a href="sideU16.html" onclick="setCookie('u16')">Jeg er under 16 år</a><br>
Jeg vil have at den husker min alder: <input type="checkbox" name="CHECKBOXNAVN">
</form>

Herefter kan du bare linke til index.html i dine 'Tilbage til forsiden'-links !-)


-- og her er lige cookie-maskinen:

<script language="javascript" type="text/javascript">
function skrivCookie(name,value,expTime,path){//Tid i dage
  switch(skrivCookie.arguments.length){
    case 1:
      var expTime = 0;
      var path = "/";
    case 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);
    }
  }else return null;
}
</script>
Avatar billede john1 Juniormester
26. marts 2004 - 17:08 #2
Hej roenving.

Tak for scriptet. Jeg prøver lige og se om jeg kan få det til at virke*S*
Avatar billede john1 Juniormester
29. marts 2004 - 15:39 #3
Skal disse to liner med for at det virker?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

Er der noget jeg skal lave om på da min i URl's ser sådan her ud
http://www.mitdomain.dk/cgi-bin/bibliotek.cgi?user_action=link&link=homepage_under16
http://www.mitdomain.dk/cgi-bin/bibliotek.cgi?user_action=link&link=homepage_over16

dette er min URL til en af mine index sider. Er der noget jeg skal gøre anderledes for at få det til at virke?
Avatar billede roenving Novice
29. marts 2004 - 16:08 #4
Hvordan URLerne ser ud skulle ikke have nogen betydning ...

Og doctype skal _altid_ med ...

Det har dog primært betydning for, hvordan siden visuelt renderes, så en egentlig funktion har det ikke her !-)
Avatar billede john1 Juniormester
29. marts 2004 - 16:19 #5
supert prøver lige igen;-)
Avatar billede john1 Juniormester
30. marts 2004 - 11:34 #6
hvordan aktiverer jeg script onclick. Er det: onClick="this.form.action" eller skal den hedde noget andet?
Avatar billede roenving Novice
30. marts 2004 - 14:21 #7
Ja, men hvis du f.eks. skal submitte bliver det onclick="this.form.submit()" fra et form-element (input type submit, button, checkbox, radio m.v.), men hvis det sker fra f.eks. et <a>-tag bliver det:

<a href="#" onclick="document.FORMNAVN.submit()">Send</a>

-- hvis ikke ovenstående dækker, må du lige komme med lidt flere oplysninger !-)
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