Sessions und PHP - ich werd nich schlau

stephandziurla

Erfahrenes Mitglied
Ich hoffe, ihr könnt mir helfen.
Ich habe hier das eine Tutorial zum Thema Sessions ausprobiert und angewandt und es funktioniert auch.
Zudem habe ich mir die Session_ID ausgeben lassen und festgestellt, dass die ID immer dieselbe ist. Stimmt das denn so? Normalerweise müsste die sich doch ändern, oder?! Also zumindest nach jedem Login oder?
 
Eine Sitzungs-ID dient der Web-Applikation, einen Benutzer eindeutig zu identifizieren. Wenn diese sich ständig ändern würde, wäre dies garnicht möglich.

Manchen Skripten sind jedoch so aufgebaut, dass sie bereits abgelaufene Sitzungen wieder aufnehmen, womit auch die Sitzungs-ID wieder identisch wäre. Dies wird beispielsweise dann gemacht, wenn während der Sitzung gewisse Parameter in einer Datenbank oder ähnlichem gespeichert werden, die später wieder zur Verfügung stehen sollen.
 
Gumbo hat gesagt.:
Eine Sitzungs-ID dient der Web-Applikation, einen Benutzer eindeutig zu identifizieren. Wenn diese sich ständig ändern würde, wäre dies garnicht möglich.

Hmm, nur dazu ja wohl nicht, oder? Das könnte man doch auch mit einer DB-Abfrage realisieren, ne?

Gumbo hat gesagt.:
Manchen Skripten sind jedoch so aufgebaut, dass sie bereits abgelaufene Sitzungen wieder aufnehmen, womit auch die Sitzungs-ID wieder identisch wäre. Dies wird beispielsweise dann gemacht, wenn während der Sitzung gewisse Parameter in einer Datenbank oder ähnlichem gespeichert werden, die später wieder zur Verfügung stehen sollen.

Welchen Zweck hat das dann, wenn Sitzungs-IDs in einer DB gespeichert werden, die man dann wieder aufruft?
Hm, also für mich klingt das nach einer zwar theoretisch sicheren Technik, die aber praktisch doch eigentlich effizienter zu regeln wäre, oder?
 
Angenommen, du meldest dich in einem Online-Shop an und legst ein paar Waren in den Warenkorb. Während dessen stürzt dein System ab. Da nun jedoch die Sitzungs-ID deiner vorherigen Sitzung in einem Cookie auf deinem Computer gespeichert wurde, kannst du den Einkaufsbummel dort weiterführen, wo du unterbrochen wurdest, ohne dich erneut anzumelden. Die Web-Applikation erkennt dich anhand der in dem Cookie gespeicherten Sitzung-ID wieder und kann die in den Warenkorb gelegten Artikel aus der Datenbank wieder abfragen.
 
Hmm, nur, damit ich den Überblick nicht verliere: wir reden hier von Sessions oder? Und nicht von Cookies? Oder gehört das zusammen?

Ich meine, bei einem re-login muss ich ja so oder so mindestens einen Benutzernamen eingeben. Und zu diesem ist ja dann die ID (aus verschlüsselter Zufallszahl gespeichert).
Hmm, aber ich glaube, ich weiß was du meinst. Selbst wenn das ginge, wüsste der Browser ja nicht, an welcher Stelle ich aufgehört hab, right?!
 
Also normal ist das nicht das die Session ID die selbe ist. Jedesmal wenn du den Brwoser neu öffnest und die Seite aurufst genrierst du eine neue Session ID, es kann nur sein das du einen Browser hast der mehrere Seiten in Tabs öffnet wenn du nur die Tabs schliesst aber den Browser offen lässt und die Seite erneut aufrufst kriegst du wieder die selbe Session ID zugewiesen.
SessionIDs zu speichern macht meistens auch wenig Sinn soweit ich weis erzeugt man SessionIDs meist nur dafür um Session - Variablen zu speichern die man dem speziellen Nutzer setzen möchte für diese eine Sitzung. Alles andere was dauerhaft bzw. über die Sitzung hinaus ist sind meistens Cookies also wenn der Nutzer den Browser schliesst und dann wider öffnet und die Seite wieder aufruft und z.B. die Bestellung wieder da ist das sind das Cookies und hat nur wenig mit SessionIDs zu tun.
 
Zuletzt bearbeitet:
Verändere mein obiges Beispiel mal so, dass du dich weder registrierst noch anmeldest. Dann wäre beispielsweise die Sitzungs-ID die einzige Information, mit der dich die Web-Applikation identifizieren könnte.

Allgemein ist es so, dass es zwei Arten der Sitzungs-Identifikation gibt: entweder wird die Sitzungs-ID in einem Cookie gespeichert – egal ob temporär, also nur für die entsprechende Sitzung, oder persistent – oder die Sitzungs-ID wird an den URL angehangen. Egal welche Variante: die Web-Applikation kann dich anhand dieser Sitzungs-ID identifizieren. Und auch nur auf dem Server gespeicherte Sitzungs-Parameter sind nur nach der Identifizierung wieder verfügbar.
Das heißt, nur durch die Identifizierung ist die Nutzung von Session-Variablen überhaupt möglich.
 
Die Web Applikation kann dich anhand der SitzungsID identifizieren aber nur solange du nicht den Browser schliesst und die Seite wieder neu aufrufst weil somit eine neue SitzungsID erzeugt wird und diese dann nicht mit der auf der alten gespeicherten Daten übereinstimmt deswegen sage ich ja das diese meistens nur dazu genutzt werden um Informationen für einen Nutzer oder zur Auswertung für die gerade gestartene Session zu speichern.
Also nochma die SessionID ändert sich immer dann wenn der Browser neu aufgerufen bzw gestartet wird. Sie ändert sich nicht wenn du dich auf einer Seite einloggst dich ausloggst und dann wieder einloggst da der Browser ja nicht geschlossen wurde während dessen.
 
Zuletzt bearbeitet:
Zurück