Ein paar Fragen zur Funktionsweise von Sessions

Garrand

Grünschnabel
Hallo Junx!

Ich habe mal ein paar Fragen zur Funktionsweise von Sessions. Leider konnte ich zu diesen unter Suchfunktion nichts brauchbares finden, also wenn es schon einen Thread gibt, in dem ich antworten finden könnte, schonmal n dickes Sorry :)

Also folgendes: Wenn ich eine Session starte mit php, wird auf dem Webserver eine Sessiondatei angelegt, in der einige Sessionvariablen gespeichert werden, bis die Session beendet wird. Soweit so gut.

Wie funktioniert das jetzt aber wenn ich eine Frameseite habe?

Wenn ich jetzt in meiner Index.php eine Session starte und die Frames mit dem verweis "seite.php?<?session_name()?>=<?session_id()?>" öffne, und auf den entsprechenden Seiten auch wieder eine Session starte, müsste ich ja von meiner gesamten Seite aus zugriff auf die Sessionvariablen haben.

Meine Hauptfrage ist nun folgende: Wie lange bleiben die Sessions erhalten? Bis die Sessiondatei per Code gelöscht wird? Oder bis die TTL abgelaufen ist? oder verfallen sie schon, wenn ich auf f5 drücke?

Die 2. Frage wäre: Wenn ich jetzt einen Navigationsframe habe, und die einzelnen Links noch mit dem selben zusatz wie in der Indexdatei habe, ist die Seite dann auch lauffähig? Oder muss man erst noch irgendetwas anderes machen, wenn die einzelnen Webseiten auf die Sessionvariablen zugreifen können?


Sorry wenn ich jetzt Sachen frage, die man eigentlich auch einfach ausprobieren könnte, aber 1. bin ich grad auf arbeit und 2. würde ich mir gerne vorher erstal ein Konzept erstellen, da die Webseite die ich erstelle sehr gut gesichert sein muss ;-)

Vielen Dank schonmal an alle, die mir helfen möchten!

Bye, Garry!
 
Deine Sessionvariablen sind innerhalb des gesamten Browserfensters gültig (also auch in unterschiedlichen Frames) - du musst nur immer session_start() aufrufen - und eine Session ist solange gültig, bis das Browserfenster wieder geschlossen wird.
 
Hallo Jenno,

danke für deine schnelle Antwort. Also sollte es so gehen wie ich mir das vorgestellt hab.

Demzufolge müsste meine index datei folgendermaßen aussehen:

Code:
<?php session_start(); ?>
<html>
//Frames bauen
  linker Frame, inhalt = "navigation.php?<?session_name()?>=<?session_id()?>"
  rechter Frame, inhalt = "login.php?<?session_name()?>=<?session_id()?>"
</html>

In meiner navigationsseite, müsste der Code so aussehen:

Code:
<?php session_start(); ?>
<html>
<a href = "login.php?<?session_name()?>=<?session_id()?>">Anmelden</a><br>
<a href = "AndereSeite.php?<?session_name()?>=<?session_id()?>">Andere Seite</a><br>

und in meiner login.php müsste ich quasi ein Formular machen, wo der benutzer seine Daten eingibt, und bei klick auf submit die eingegeben Daten auf richtigjkeit überprüft werden, und samt echtheitsbestätigung in meiner Session gespeichert werden.

Auf allen anderen Seiten müsste ich dann wieder die Session starten, und gleich am anfang überprüfen ob die Sessionvariable, die beinhaltet ob der Nutzer richtig angemeldet worden ist, korrekt ist. Falls ja darf er sich die seite angucken, falls nich, wird er wieder auf die login seite geschmissen.

Kann man das so machen? Oder ist das Unsicher / Verbesserungsbedürftig?
 
eine Session ist solange gültig, bis das Browserfenster wieder geschlossen wird.
Das stimmt so nicht. Die Einstellungsparameter
- session.cookie_lifetime,
- session.cookie_path,
- session.cookie_domain,
- session.cookie_secure und
- session.use_trans_sid
sind dafür ausschlaggebend, wie lange und unter welchen Bedingungen die Session gültig ist.
 
Original geschrieben von snuu
Das stimmt so nicht. Die Einstellungsparameter
- session.cookie_lifetime,
- session.cookie_path,
- session.cookie_domain,
- session.cookie_secure und
- session.use_trans_sid
sind dafür ausschlaggebend, wie lange und unter welchen Bedingungen die Session gültig ist.
In wiefern ist das Ausschlaggebend für die Lebensdauer einer Session? Beeinflusst das nicht nur, wo die Sessiondaten gespeichert werden?
 
Yo! Aber in jedem Fall geht eine Session nicht über ein Browserfenster hinaus!
Auch falsch. Wird die Session in einem Cookie gespeichert, das auch bestehen bleibt, wenn das Browserfenster geschlossen wird, kann die Session innerhalb der Lebenszeit des Cookies wieder aufgenommen werden. Bestes Beispiel: Tutorials.de

session.cookie_path gibt dabei an, für welchen Bereich das Cookie gültig ist. "/" ist die Voreinstellung, so dass alle Seiten einer Domain das Cookie lesen können.

snuu
 
Phat! Aber wenn ich en cookie speicher kann ich eigentlich beim ersten Seitenaufruf auch den Login-Prozess noch einmal durchlaufen! Allzu lange dauert das ja auch wieder net!
 
Zurück