Frage von HowKnow, 20

Cookies funktionieren auf dem Localhost, aber nicht auf dem Webspace: Woran kann's liegen?

setcookie("keks", "wert", time()+3600, "/", false,  false);

Mit dieser Zeile soll ein Cookie gesetzt werden. Auf dem Lokalhost funktioniert das prima. Auf dem Webspace klappte es allerdings nicht. Auch nachdem ich eine konkrete Domain angegeben habe:

    setcookie("keks", "wert", time()+3600, "/", ".website.com", false, false);

Den Code fürs Setzten des Cookies habe ich in eine separate PHP-Datei ausgelagert und binde sie auf den Seiten mittels include_once("cookie_datei.php"); ein. Ich dachte daran, dass es vielleicht daran liegen könnte, aber auch wenn der Code in der selben Datei steht, funktioniert es nicht. Inzwischen habe ich mich durch die ersten fünf Seiten von Google gekämpft und keine Antwort gefunden. Auch sieht es nicht so aus, als ob der Webspace-Anbieter (one.com) Schuld sein könnte. Hat jemand eine Idee?

Antwort
von mepeisen, 13

Drücke in deinem Browser deines Vertrauens zunächst mal F12. Je nach Browser öffnet sich dann eine Debug-Konsole. Dort kannst du vor allem deinen Netzwerktraffic anschauen und mal schauen, ob der Cookie denn A) tatsächlich gesetzt wird vom Webserver (Response dazu anschauen) und B) wieder vom Browser mitgeschickt wird (nächsten Request anschauen).

Damit kannst du den Fehler etwas eingrenzen.

Manchmal kommt es vor, dass Webhoster noch diverse Codes an den Anfang hängen vor eine Seite. Gerade so Baukastenanbieter wie deiner. Daher auch mal alle Warnungen von PHP einblenden, ob es dem PHP überhaupt möglich war, den Cookie zu setzen oder ob schon HTML-Code ausgegeben wurde, bevor der Cookie gesetzt wurde.

Kommentar von HowKnow ,

Die Cookies beobachte ich mit dem Analyse-Tool  in Chrome und bin deshalb sehr sicher, dass dieser Cookie auf dem Localhost gesetzt wird, aber nicht im Webspace. Die Seite ist handgeschrieben und deshalb glaube ich nicht, dass one.com in den Quellcode eingegriffen hat. Komisch ist auch folgendes: Rufe ich die einzelne cookie_setzten.php Datei über die entsprechende URL im Webspace auf, dann wird der Cookie gesetzt. Geht man beispielsweise auf die index.php - Seite, in deren Code gleich zu Beginn die cookie_setzten.php-Datei eingebunden wird, dann wird er nicht gesetzt. Weil es auf die eine Weise klappt und auf die andere nicht, denke ich, dass es nicht an One.com liegt. Wäre das der Fall, würde auf keine der beide Weisen ein Cookie gesetzt werden. An dem Einbinden des Codes kann es auch nicht gescheitert sein, weil das schon auf dem Localhost funktionierte. 

Hast du noch einen Vorschlag? Ich bin wirklich am Verzweifeln :D

Kommentar von mepeisen ,

Wie ich bereits sagte: Blende mal alle Fehler ein:

http://php.net/manual/de/function.error-reporting.php und das auf E_ALL

und als zweiten Befehl dann das Include auf deine Cookies.php und dann siehst du eventuell etwas.

Keine passende Antwort gefunden?

Fragen Sie die Community