cookie setzen

solala123

Erfahrenes Mitglied
Hallo,
ich möchte ein cookie setzen, aber in die Variable $version wird nichts eingetragen

ich hatte das alles schon mit session gemacht und das hat auch funktioniert, aber es wird halt nicht über Tage gespeichert.
wenn ich anstelle $version nur den Innhalt von der Variablen schreibe funktioniert es auch.

Die Umschaltung kommt von einem Formular, 1,2 und 3

PHP:
setcookie("tsg08einstellungen","$version",time()+(3600*24));  // steht ganz oben,  nur hier wird nichts 
                                                                                            // in die Variable $version eingetragen
$seite_1      = $_POST['seite_1'];
$version      = $_POST['version'];


if (isset($_POST["submit"]))
{ 

if($seite_1== 1)
   {
   $version = "version1";
   }
else if($seite_1 == 2)
   {
   $version = "version2";
   }
else if($seite_1 == 3)
   {
   $version = "version3";
   }
else
   {
   echo "Du bist weder 1 noch 2 oder 3";
   }
}


$cookie = $_COOKIE["tsg08einstellungen"];
echo "Der Inhalt des Cookies: $cookie";
echo "<br>";
echo "$version";   //hier steht der korrekte Wert in der Variablen

print_r($_COOKIE);

HTML:
<body <?php if(!empty($cookie)) echo "id='$cookie'";?>>

Danke
Gruß
Rainer
 
Zuletzt bearbeitet:
Hallo,
die Variable bekommt ja einen Wert von dem Formular,
wenn ich einen festen Wert zuweise wie in deinem Beispiel dann fuktioniert es ja, aber nicht mit einer Variable
 
Du speicherst erst den Wert von $version im Cookie (oder versuchst es zumindest), dann übergibst du der Variablen $version den Wert von $_POST["version"]!

Sieht für mich so aus als ob in der ersten Zeile noch kein Wert vorhanden wäre. Beim Ausgeben am Ende des Skripts ist der Wert natürlich vorhanden.

Was kommt raus wenn du es so schreibst.

PHP:
$seite_1 = $_POST['seite_1'];
$version = $_POST['version'];
setcookie("tsg08einstellungen", $version , time()+(3600*24));

NACHTRAG: Wenn ein Cookie gesetzt wird, dann kann im Anschluss daran nicht direkt wieder darauf zugegriffen werden. Die Seite muss erst neu geladen werden bzw. eine andere Seite muss geladen werden.
 
Zuletzt bearbeitet:
Hallo Thomas,
Danke für den Tip, werd es in ein paar Tagen erst testen könne denn ich bin momentan noch in Sambia

Gruß
Rainer


Hallo Thomas,
bin wieder zurück :),
habe mal deinen Vorschlag eingefügt, leider ohne Erfolg, es kommt nichts in den cookie an.
Die Seite mit den Ausgaben von Inhalt des cookies
und von Version
kann man hier anschauen http://tt.resbar.de/Einstellungen.php

Hallo Thomas,
hab es nach langen Versuchen doch hinbekommen,

zum einen ist folgendes hilfreich gewesen
http://www.phpbuddy.eu/php-und-cookies-crashkurs.html?showall=1

und so hab ich es jetzt gemacht:
PHP:
foreach($_COOKIE as $cookieName => $cookieValue)

// Umschaltung des Hintergrundes
$version = "version" .$_COOKIE['cookie_demo_2'];

Damit kann ich jetzt den Hintergrund ändern und wenn ich dieses auf jeder Seite einfüge funktioniert es auch aucf jeder Seite.
Ps. hab alles in einer PHP Datei seperat geschrieben und jetzt auf jeder Seite mit inklud eingefügt.


Allen ein schönes Weihnachtsfest
Gruß
Rainer
 
Zuletzt bearbeitet:
Zurück