Problem mit Cookie setzen
Tarantel
- php
Hi :)
ich versuche schon seit einigen Stunden, zu überprüfen ob ein Cookie vorhanden ist... wenn nicht, es setzen zu lassen.
<?
$text = "Blabla";
if (isset ($_COOKIE[$text])) {
echo "Das Cookie ist vorhanden.";
} else {
echo "Das Cookie ist nicht vorhanden und wird jetzt gesetzt.";
setcookie ("$text", $text, time()+86400);
}
?>
Kann mir jemand erklären, was daran nicht stimmt?
Liebe Grüsse
die Tarantel
Hi
setcookie ("$text", $text, time()+86400);
setcookie("text",$text,time()+86400);
Sollte jetzt gehen.
Fabian
Hallo!
<?
$text = "Blabla";
if (isset ($_COOKIE[$text])) {
echo "Das Cookie ist vorhanden.";
} else {
echo "Das Cookie ist nicht vorhanden und wird jetzt gesetzt.";
setcookie ("$text", $text, time()+86400);
}
?>Kann mir jemand erklären, was daran nicht stimmt?
" setcookie() definiert ein mit den Header-Informationen zu übertragendes Cookie. Cookies müssen vor irgendwelchen anderen Headern gesendet werden (dies ist eine Einschränkung der Cookies, nicht von PHP). Sie müssen deshalb solche Funktionsaufrufe vor irgendwelchen <html>- oder <head>-Tags im Skript einsetzen. "
Zitat: http://www.php3.de/manual/de/function.setcookie.php
Du bemerkst Deinen Fehler? Du darfst vor einem Cookie _nichts_ ausgeben, vor allem kein echo. D.h. Dein Cookie wird nicht gesetzt, da schon vorher header an den Browser gesendet wurden.
Fabian hat Dich auf einen weiteren Fehler aufmerksam gemacht, nur wenn Du diesen korrigierst korrigiere dazu passend auch Dein If:
if (isset ($_COOKIE['text'])) {
Es hätte auch ohne dies zu korregieren funktioniert, nur hätte der Cookie dann denselben Namen wie Wert, was früher oder später automatisch zu Problemen geführt hätte.
Außerdem bin ich sicher das Du das nicht wolltest.
Grüße
Andreas