Hauke: Cookies

Hallo,

meine html-Seite, sieht folgendermaßen aus:

<html>
<head>
<script type="text/javascript">
<!--
function CookieMachen(){
var auscookie
var incookie = "trallala"

if (document.cookie){
auscookie = "Cookie vorhanden. Eintrag lautet: " + document.cookie;
alert(auscookie);
}
else{
alert ("Kein Cookie gefunden.")
document.cookie = incookie;
var info = "Neuer Cookie-Eintrag: " + incookie;
alert (info);
}
}
//-->
</script>
</head>
<body onLoad="javascript: CookieMachen();" bgcolor="#000000">
</body>
</html>

Diese Seite prüft, ob ein Cookie mit dem Eintrag trallala vorhanden ist, falls keiner vorhanden ist, wird ein Cookie mit dem Eintrag trallala gespeichert.

In diesem Cookie gibt es allerdings auch Einträge vom Tripod-Server (irgendwelche Nummern). Wie kann ich JavaScript dazu bringen, nur zu gucken ob der String trallala vorhanden ist, und nicht auf diese Nummern zu reagieren?

Danke für alle Antworten,

Hauke

  1. Hallo,

    ...Wie kann ich JavaScript dazu bringen, nur zu gucken ob der String trallala vorhanden ist, und nicht auf diese Nummern zu reagieren?

    Im Cookie streht drin:
    xyz1=ABC;tralala=1234567;xyz2=DEF; usw.
    Man muß also nach   tralala=   suchen, um den Anfang zu finden, und nach dem Semikolon danach für das Ende (am Schuß fehlt das Semikolon), z.B. so:

    ------schnipp--------

    alert ( "Inhalt von Cookie tralala : " + cookie_read("tralala") )

    function cookie_read(name) {
       var name;
       var u=1, o=1, w=" ";
       var wert="";
       var n=name+"=";
       w=document.cookie.substring
           (0,document.cookie.length);
       u=w.indexOf(n,0);
       if (u > -1) {
          u=u + n.length;
          o=w.indexOf(";",u);
          if (o == -1) o=w.length;
          wert = w.substring(u,o);
       }
       return wert;
    }
    ------schnapp-----------

    Wenn im Cookie-Inhalt auch Gleichheitszeichen oder Semikolon vorkommen sollen, bedarf es besonderer Maßnahmen, z.B. können diese durch "exotische", nicht benötigte Zeichen ersetzt werden.

    Gruß
    Hans35

  2. document.cookie = incookie;
    var info = "Neuer Cookie-Eintrag: " + incookie;
    alert (info);

    Diese Seite prüft, ob ein Cookie mit dem Eintrag trallala vorhanden ist, falls keiner vorhanden ist, wird ein Cookie mit dem Eintrag trallala gespeichert.

    In diesem Cookie gibt es allerdings auch Einträge vom Tripod-Server (irgendwelche Nummern). Wie kann ich JavaScript dazu bringen, nur zu gucken ob der String trallala vorhanden ist, und nicht auf diese Nummern zu reagieren?

    Wie Hans bereits richtig angedeutet hat, steht in document.cookie nicht ein einzelner Cookie, sondern alle Cookies, die für diese Seite gelten, und zwar im Format "name=daten;name=daten;...".
    Zum Reinschreiben mußt Du das gleiche Format verwenden, im Namen auf Zeichen außerhalb von a-z und 0-9 verzichten und die Daten vorher mit escape() bearbeiten.

    Du kannst Dir allerdings die ganze Arbeit sparen, indem Du fertige Funktionen verwendest: http://kino-fahrplan.de/privat/st/cookies/cookie_box.js.

    Gruß,
      soenk.e