2 Stimmen

PHP-Session-Variablen werden nicht seitenübergreifend weitergegeben

Ein häufiges Problem, aber ich bin ratlos. Sitzungsvariablen werden auf meinem lokalen (localhost) Einsatz seitenübergreifend weitergegeben, aber nicht auf meinem (www) Host. Ich verwende eine gemeinsame Includes-Datei für jede Seite mit diesem Code:

$sessionDomain = "/";
@ini_set("session.cookie_path",$sessionDomain);
$sessionName = "ccSID".md5('/store/');
session_name($sessionName);
session_start();

Ich habe bestätigt, dass das Sitzungs-ID-Cookie (ccSIDxxxxx...) auf allen Seiten in meinem Browser gleich bleibt, aber die Sitzungsvariablen scheinen nicht zu funktionieren, wenn ich zu einer Seite in einem anderen Verzeichnis wechsle.

EDIT: Meine Session-Cookie-Datei hat lesbare Daten aus einem Pfadverzeichnis, aber nicht aus einem anderen. Ich habe festgestellt, dass das gute Verzeichnis eine leere php.ini-Datei enthält. Wenn ich eine leere php.ini-Datei in das schlechte Verzeichnis lege, wird der Sitzungscookie lesbar, aber die normalen Browser-Cookies werden nicht von Seiten in diesem Verzeichnis gespeichert. Was hat es mit (leeren) php.ini-Dateien in Verzeichnissen auf sich, die das Verhalten des Sitzungscookies verändern?

1voto

Your Common Sense Punkte 154708

"/" sieht wie ein Pfad aus, nicht wie eine Domäne.
Warum belassen Sie die Sitzungseinstellungen nicht einfach bei den Standardwerten?
Wenn der Sitzungscookie in Ordnung ist, müssen Sie die Dateien in session.save_path überprüfen.

1voto

Syntax Error Punkte 4369

Ich habe das leise Gefühl, dass Sie Kekse an mehr als einem Ort aufbewahren. Da Sie sie selbst benennen, könnte der Name derselbe sein, aber es würde sich tatsächlich um eine völlig andere Sitzung handeln.

Sehen Sie sich auf Ihrem Server die aktuellen Sitzungsdateien an. Sind sie alle da, wo sie sein sollen? Gibt es ein paar, die dort auftauchen, wo sie nicht hingehören?

Wenn dies der Fall ist, wird der Pfad wahrscheinlich relativ und nicht absolut gesetzt, auch wenn es nach dem, was Sie hier gezeigt haben, nicht so aussieht.

Vielleicht sollten Sie auch den shutup-Operator (@) aus Ihrer ini_set() entfernen, damit Sie sehen können, ob sie sich über etwas beschwert?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X