Thread Cookies nur einmal? (4 answers)
Opened by silbersteine at 2003-11-18 09:51

silbersteine
 2003-11-18 09:51
#25304 #25304
User since
2003-08-18
27 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

ich habe ein kleines Problem. Jetzt habe ich mich schon so weit durchgekämpft, dass ich als Javascript-Analphabet Cookies schreiben und lesen kann, doch irgendwie will das immer nur einmal (!) gelingen - ich kann den Keks nicht mehr ändern. Sprich: Auf der ersten Web-Seite (Eingangsseite) frage ich ab, ob schon ein Cookie hinterlegt worden ist. Ist das nicht der Fall, soll 1. ein Cookie mit dem aktuellen URL hinterlegt werden und 2. im gleichen Verzeichnis die Seite check.shtml aufgerufen werden. Code (Funktionen Wertholen und setcookie siehe unten):

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
<script type="text/javascript">
<!--
var x = WertHolen();
var url = document.URL;
if(x != 18) {
window.document.cookie="url=" + url + ";path=/;";
self.location.replace("check.shtml");
}

//-->
</script>


Das funktioniert auch schon einmal. Jetzt zur Check-Seite: Hier soll per Formular abgefragt werden, ob der Besucher schon 18 ist, dies im Cookie gespeichert und zur Ursprungsseite zurückgekehrt werden, die im Cookie gespeichert ist:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
<script TYPE="text/javascript">
<!--

var url = WertHolen();
document.write(url + "<form onSubmit=\"setcookie()\" action=\"" + url + "\" method=\"get\" target=\"_top\">");

// -->
</SCRIPT>
<NOSCRIPT><p>Diese Seite funktioniert nur mit Javascript. Sie müssen in Ihrem Browser Javascript aktivieren, bzw. einen Browser verwenden, der damit umgehen kann.</p></NOSCRIPT>
<input name="yes" type="submit" value="Ja, ich bin über 18"></TD><TD><form action="http://www.skriptoase.de/cgi-bin/rand_link.pl" method="get" target="_top"><input name="no" type="submit" value="Nein, ich gehe lieber wieder"></form>


Auch dies funktioniert für sich allein getestet wunderbar. Das Problem ist jetzt nur, dass immer nur einmal der Cookie beschrieben wird. Sprich: Ist der URL schon drin gespeichert, schreibt der Browser später nicht mehr Zaehler=18 rein (den URL brauche ich ja dann nicht mehr im Cookie), ist die 18 schon drin, schreibt er später nichts anderes mehr rein. Das kann doch nicht sein! Man muss doch einen Cookie noch ändern können, oder? Kann mir jemand helfen?

Die Funktionen:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function WertHolen() {
var Wert = "";
if(document.cookie) {
 var Wertstart = document.cookie.indexOf("=") + 1;
 var Wertende = document.cookie.indexOf(";");
 if (Wertende == -1)
  Wertende = document.cookie.length;
 Wert = document.cookie.substring(Wertstart,Wertende);
}
return Wert;
}

 function setcookie() {
   window.document.cookie = "Zaehler=18;path=/;";
   }
Viele Grüße aus Calberlah

Der SilberStein

<a href="http://www.skriptoase.de/">www.skriptoase.de</a>

# "It's all very perlish" (L.Wall)

View full thread Cookies nur einmal?