Cookie setzten funktioniert nicht

indien

Grünschnabel
Liebe helfende Mitglieder,
Leider arbeite ich noch nicht lange mit PHP, und verstehe somit somanches nicht.
Versuche ein Cookie zu setzten welches wenn man auf einen von 3 bestimmten Links klickt entweder 1, 2 oder 3 setzt. Leider schaffe ich das nicht.
Hier der Code:

<?php
//Cookie mit dem Namen Style und der Variable $wert wird gesetzt:
setcookie('style', $wert);
//je nach $wert im Cookie soll eines der 3 StyleSheets aufgerufen werden:
if($_COOKIE[$style]== "1") {echo "<link rel=\"StyleSheet\" type=\"text/css\" href=\"css/ff_screen.css\">";}
else if($_COOKIE[$style]== "2") {echo "<link rel=\"StyleSheet\" type=\"text/css\" href=\"css/ff_screen_groesser.css\">";}
else if($_COOKIE[$style]== "3") {echo "<link rel=\"StyleSheet\" type=\"text/css\" href=\"css/ff_screen_gross.css\">";}
else {echo "<link rel=\"StyleSheet\" type=\"text/css\" href=\"css/ff_screen.css\">";}
?>
//Hier wird der $wert gesetzt:
<a href="<?php echo basename($PHP_SELF)."?wert=1; ?>"><span class="Stil1">A</span></a>
<a href="<?php echo basename($PHP_SELF)."?wert=2; ?>"><span class="Stil2">A</span></a>
<a href="<?php echo basename($PHP_SELF)."?wert=3; ?>"><span class="Stil3">A</span></a>

PS: Danke im Voraus für eure Hilfe

Lg. INDIEN
 
Hi,

setcookie() erwartet als 3. Parameter einen Zeipunkt, an dem das Cookie verfällt.
Gibst du nichts an, verfällt es sofort.
PHP:
setcookie('style', $wert, time() + 60*60*24*30);

In diesem Beispiel, würde das Cookie erst nach 30 Tagen verfallen.

Achja, ich würde statt $PHP_SELF, $_SERVER['PHP_SELF']; verwenden.

mfg

Devil
 
setcookie() erwartet als 3. Parameter einen Zeipunkt, an dem das Cookie verfällt. Gibst du nichts an, verfällt es sofor
Schnickschnack - wird der dritte Parameter nicht angegeben, verfällt das Cookie beim Schließen des Browsers. Also ist solange das Cookie vorhanden.

Ich vermute eher, dass der via GET übergebene Wert nicht in das Cookie geschrieben wird, weil bekanntermaßen register_globals deaktiviert ist. Also muss auf den Wert wiefolgt zugegriffen werden: $_GET['wert']

snuu
 
Danke schön

Lieber "Devil";

Vielen Dank für deine schnelle Hilfe. Die Zeit habe ich hinzugefügt und trotzdem funkte es nicht.
Nun hab ich
<?php if(isset($wert)){ setcookie('style', $wert, time()+(60*60));}?>
nach dem setzten gefragt, seitdem funkt es.

Warum das ohne isset nicht funktionierte weis ich nicht, aber hauptsache jetzt funkts.

LG. INDIEN
 
Original geschrieben von snuu
Schnickschnack - wird der dritte Parameter nicht angegeben, verfällt das Cookie beim Schließen des Browsers. Also ist solange das Cookie vorhanden.

Stimmt, sowas passiert mir eigentlich selten, aber danke für den Hinweis!

Devil
 
Zurück