Hans: vorhandene sessionvariable überschreiben

Beitrag lesen

Hall Till,

Wieso wird beim öffnen eines neuen fenster eine neue sessionvariable erzeugt?

Zu jedem Fenster auf dem Frontend, das nicht durch JS o.ä. erzeugt wurde, sondern das Ergebnis eines Requests ist, gehört serverseitig ein Script (HTML, CGI oder PHP o.ä.).

Beim Aufruf eines PHPscripts werden standardmäßig bestimmte Dinge geprüft:

Wurden globale Varibalen übergeben?
Gibt es schon einen globalen Variablenbereich?
Welche Variablen können dem Environment entnommen werden -> Übertragung

Wird eine Session verlangt?
Besteht schon eine?
 nein: Initialisierung von $_SESSION und $_COOKIE
 ja: $_COOKIE auslesen und die Sessiondatei suchen
   vorhanden: $_SESSION mit dem Inhalt der Datei füllen
   nv: Sessiondatei anlegen und die Nummer in $_COOKIE eintragen

Das bedeutet, erst nach dem Aufruf von session_start() hat man bezüglich der $_SESSION und er S_COOKIE-Variablen "stabile" Zustände.

Wenn man z.B. eine alte Session wieder aufnehmen will, muss man nur den Session-Cookie ($_COOKIE["PHPSESSID"]) mit dem Namen der Sessiondatei fillen, bevor man session_start() aufruft. Man ist dann allerdings selbst dafür verantwortlich, das dem Client durch explizites senden des "Session_Cookies" auch noch mitzuteilen. Diese Vorgehensweise kommt immer dann in Betracht, wenn man dem Sessionstart ein qualifiziertes Login (Username-Passwort) vorausgehen lassen will, also User ohne Login auch keine Session bekommen.

LG

der blanke Hans