Cookie Überprüfung fehlerhaft

traffic

Well-known member
5 Mai 2006
675
25
Hallo,

laße so das Cookie setzten und überprüfen:

PHP:
$test="test";
setcookie("test", $test, time()+7200, "/");
if(empty($_COOKIE['test'])) {
echo"<center><font size=4 color=red>Bitte Cookies aktiveren um diese Site  nutzen zu können!</font>";
die();
}

Nun ja....es kommt sofort das echo...
Wennn man F5 drückt, dann geht wird die Seite richtig angezeigt!

Was mache ich da verkehrt?

MfG
Traffic
 
https://de.php.net/setcookie schrieb:
Cookies werden nicht sichtbar, bevor nicht eine Seite geladen wird, für die das Cookie sichtbar sein soll. Um zu testen, ob ein Cookie erfolgreich gesetzt wurde, prüfen Sie noch vor der Ablaufzeit auf der nächsten geladenen Seite, ob das Cookie vorhanden ist. Die Ablaufzeit wird mittels des Parameters expire gesetzt. Eine gute Möglichkeit, die Existenz von Cookies zu prüfen, ist einfach print_r($_COOKIE); aufzurufen.
...
 
Oder in einfacheren Worten:

Setcookie schreibt die Anweisung, das Cookie zu setzen in den HTTP-Header der Rückgabe des Servers. Sprich: Das Cookie wird erst gesetzt, wenn die Seite an den Client ausgeliefert wird - also nachdem Dein Skript durchgelaufen ist. Demzufolge ist es erst auf der ersten angeforderten Seite nach der Seite, auf der es gesetzt wurde, auslesbar.
 
PHP:
$test="test";
if(!setcookie("test", $test, time()+7200, "/") || empty($_COOKIE['test'])) {
echo"<center><font size=4 color=red>Bitte Cookies aktiveren um diese Site  nutzen zu können!</font>";
die();
}
 
PHP:
$test="test";
if(!setcookie("test", $test, time()+7200, "/") || empty($_COOKIE['test'])) {
echo"<center><font size=4 color=red>Bitte Cookies aktiveren um diese Site  nutzen zu können!</font>";
die();
}

nein, setcookie gibt nicht false zurück, nur weil cookies deaktiviert wurden ;)
 
Naja da hast auch wieder recht. Aber das könnte man doch mit einer JavaScript funktion checken oder liege ich da falsch ist das bei JavaScript genauso das der Cookie erst erscheint bei einer neuen Seite?