Cookies gezielt auslesen für Dummies
Mario
- javascript
0 ChrisB1 Cheatah0 Danke
Mario
Hi,
bin in JS nicht so bewandert und nurtze normalerweise PHP für sowas und si habe ich wohl ein Verständnisproblem.
<script type="text/javascript">
function mycook(status)
{
if(status=='write'){document.cookie = "Name=SELFHTML;baum=eiche;";}
else{alert(document.cookie.baum);}
}
</script>
Ich versuche das Wort "eiche" zu erhalten, wobei ich wahrscheinlich schon den Denkfehler habe.
Ist baum =eiche gleichzusetzen mit variable=wert?
Wenn ich das änder und so ausgebe: else{alert(document.cookie);} geht es natürlich dann bekomme ich Name=SELFHTML.
Ich habe ein wenig geblättert und immer wieder ein auslesen mit indexOf gesehen, was mir so nicht richtig einleuchten will. Kann man Cookies überhaupt gezielt mit dem Wort vor dem Gleichheitszeichen ansprechen, oder wenn nicht, woher weiss ich dann an welcher Stelle es vorkommt?
Ihr seht schon im Grunde suche ich sowas wie eine einfache Variablenabfrage, so dass ich wie im Beispiel weiss das der gesuchte Baum eine Eiche ist.
if(document.cookie.baum=='eiche'){alert 'Heureka' ;}
Mario
Hi,
Ich versuche das Wort "eiche" zu erhalten, wobei ich wahrscheinlich schon den Denkfehler habe.
Ist baum =eiche gleichzusetzen mit variable=wert?
Wenn ich das änder und so ausgebe: else{alert(document.cookie);} geht es natürlich dann bekomme ich Name=SELFHTML.
Dann wurde also gar kein zweiter Cookie gesetzt.
Ich habe ein wenig geblättert und immer wieder ein auslesen mit indexOf gesehen, was mir so nicht richtig einleuchten will. Kann man Cookies überhaupt gezielt mit dem Wort vor dem Gleichheitszeichen ansprechen,
Nein.
Per JavaScript hast du nur Zugriff auf document.cookie, und das enthaelt *alle* Cookies, die derzeit fuer das aktuelle Dokument gesetzt sind, als *einen* Textstring der Form "cookiename1=cookiewert1; cookiename2=cookiewert2; cookiewert3=..."
oder wenn nicht, woher weiss ich dann an welcher Stelle es vorkommt?
Die Stelle interessiert dich nicht.
Du weisst, dass alle Eintraege aus name=wert bestehen, und durch ein Semikolon und ggf. noch ein diesem folgendes Leerzeichen getrennt sind.
Also trennt man den String mit split am Semikolon (und ggf. Leerzeichen) auf, dann erhaelt man ein Array mit einem oder mehreren name=wert-Paaren, Die kann man jetzt noch mal am Gleichheitszeichen aufsplitten, um name und wert einzeln zu bekommen.
Ihr seht schon im Grunde suche ich sowas wie eine einfache Variablenabfrage, so dass ich wie im Beispiel weiss das der gesuchte Baum eine Eiche ist.
if(document.cookie.baum=='eiche'){alert 'Heureka' ;}
Nein, sowas geht in JavaScript nicht - entsprechende Funktionen zur komfortableren Cookiebehandlung muss man sich selber schreiben, bzw. sich im Netz was fertiges suchen.
MfG ChrisB
Hi,
if(status=='write'){document.cookie = "Name=SELFHTML;baum=eiche;";}
das Beschreiben von document.cookie setzt *einen* Cookie. Dieser kann Angaben wie beispielsweise das Auslaufdatum enthalten. "baum" ist keine für Cookies gültige Angabe.
else{alert(document.cookie.baum);}
Ich versuche das Wort "eiche" zu erhalten, wobei ich wahrscheinlich schon den Denkfehler habe.
Ja. Lesend enthält document.cookie einen String, der *alle* Cookies auflistet. Insbesondere ist für Dich wichtig, dass document.cookie *einen* String enthält, und dass es ein *String* ist.
Ist baum =eiche gleichzusetzen mit variable=wert?
Nein. "baum=eiche" ist gleichzusetzen mit "flubberdibubbel".
Ich habe ein wenig geblättert und immer wieder ein auslesen mit indexOf gesehen, was mir so nicht richtig einleuchten will.
Wie würdest Du aus "flubberdibubbel" denn den Teil zwischen "di" und "bel" auslesen?
Kann man Cookies überhaupt gezielt mit dem Wort vor dem Gleichheitszeichen ansprechen,
Nur wenn Du etwas baust, das dies ermöglicht. Ansonsten ist und bleibt es ein String.
oder wenn nicht, woher weiss ich dann an welcher Stelle es vorkommt?
Durch sinnvolle Verwendung z.B. von indexOf().
Ihr seht schon im Grunde suche ich sowas wie eine einfache Variablenabfrage,
Dann musst Du Variablen erzeugen. document.cookie ist ein String, genau wie "flubberdibubbel" einer ist.
Cheatah
Dank an euch, dachte das ganze wäre wesentlich simpler. Aber gut, habe jetzt den String zerlegt und so gehts dann auch.
Mario