[Session handling] zweite Session per session_id öffnen und inhalt auslesen.

xamunrax

Erfahrenes Mitglied
Hallo,

ich arbeite zwar schon seit Jahren mit sessions habe mich aber ehrlich gesagt nie näher mit ihnen beschäftigt.
Also vorher ein zwei Fragen zum Verständnis von Sessions.

Wenn ich Daten in die session speicher.
PHP:
session_start();
$_SESSION['name'] = 'Peter'
Dann hat meine aktuelle Session ja eine ID, wenn ich nun eine neue Session mittels dieser ID starte komme ich dann immer noch an den Wert "name" ?

So das erstmal zum verständnis.

Was ich eigentlich brauche sind die informationen eingeloggter Benutzer, speziel die in deren Sessions.
Also ich habe den Session_handler so modifiziert das er nun die SessionIDs in die Datenbank schreibt. Nun gebe ich mir als Admin die möglich diese auszulesen. Dann könnte ich ja eine neue Session starten mit einer der ID´s aus der Datenbank um an die Daten zu kommen. Soweit richtig?

Sofern ja, kommt gleich das nächste Problem wie kann ich eine "zweite" Session simulieren (mir ist schon klar das ich keine zweite Session öffnen kann) um meine eigene Session (die mich als Admin Authentifiziert) nicht zu verlieren.

Also noch mal zusammengefasst:
ich bin als Admin eingeloggt (eigene Session), Peter ist nun ebenfalls eingeloggt, das system speichert seine Session in die Datenbank. kann (und wenn ja wie) ich nun den inhalt seiner Session auslesen, seine SessionID ist ja vorhanden.

vielen Dank,
Marco
 
Dann hat meine aktuelle Session ja eine ID, wenn ich nun eine neue Session mittels dieser ID starte komme ich dann immer noch an den Wert "name" ?

Ja, das ist so. Sonst wären Session recht sinnfrei, oder? ;-)

So das erstmal zum verständnis.

Was ich eigentlich brauche sind die informationen eingeloggter Benutzer, speziel die in deren Sessions.
Also ich habe den Session_handler so modifiziert das er nun die SessionIDs in die Datenbank schreibt. Nun gebe ich mir als Admin die möglich diese auszulesen. Dann könnte ich ja eine neue Session starten mit einer der ID´s aus der Datenbank um an die Daten zu kommen. Soweit richtig?

Ja, wenn die Session noch nicht ausgetimed ist, sollte das möglich sein.

Sofern ja, kommt gleich das nächste Problem wie kann ich eine "zweite" Session simulieren (mir ist schon klar das ich keine zweite Session öffnen kann) um meine eigene Session (die mich als Admin Authentifiziert) nicht zu verlieren.

Wenn es dir nur darum geht, die gleichen Daten wie ein angemeldeter User in der Session zu haben, könntest du die Session-Daten, je nach dem wie sie gespeichert sind, "einfach" auslesen und mit deiner Session verbinden. Das könntest du mit array_merge() bewerkstelligen.

ich bin als Admin eingeloggt (eigene Session), Peter ist nun ebenfalls eingeloggt, das system speichert seine Session in die Datenbank. kann (und wenn ja wie) ich nun den inhalt seiner Session auslesen, seine SessionID ist ja vorhanden.

Wie schon geschrieben, ist es abhängig von der Art und Weise, wie die Session-Daten abgespeichert sind. Wenn das mit serialize()/unserialize() gemacht wird, müsstest du beim unserialize() die Funktion array_merge() verwenden um die Daten in deine Session zu übernehmen. Dabei können aber evtl. ungewollte Nebeneffekte auftreten. Du solltest es erstmal in der Test-Umgebung ausprobieren.

Du schweigst dich allerdings über die genaue Vorgehensweise aus, daher kann ich nicht besser beschreiben, wie man es machen könnte.
 
danke, es war mehr oder minder ein einfacher denkfehler... aber trotzdem super ausführlich beantwortet und noch die eine oder andere wissenlücke gestopft :)
 
Zurück