Wann endet eine PHP-Sitzung?

8

Ich kann keine endgültige Antwort im Internet finden, also frage ich hier.

Wenn man session_start(); in einem .php Skript benutzt und einige Werte speichert, wann endet die Sitzung? Wann wären diese Werte dann nicht wieder zugänglich?

Ich habe festgestellt, dass das Aktualisieren der Seite oder das stoppte Beenden der Sitzung den Code stoppen würde und ein mögliches Timeout die Sitzung ebenfalls stoppen würde. Aber was ist mit der Navigation weg von der Website und die Rückkehr eine Minute später? Und den Browser schließen?

Wie sieht es mit dem letzten auf dem Handy aus, was bedeutet das Schließen des Browsers? Schließen Sie den Tab oder minimieren Sie sogar die Seite?

    
Joetjah 21.11.2013, 19:07
quelle

2 Antworten

5

Wenn Ihre Sitzungswerte nicht mit einem Cookie verknüpft sind, endet die Sitzung, wenn der Windows-Browser geschlossen wird.

Wenn Ihre Sitzungsvariable von einem Cookie stammt, endet die Sitzung nach der in der Cookie-Datei angegebenen Zeit.

In PHP arbeiten Sitzungen mit einem Cookie vom Typ session . Serverseitig werden die Sitzungsinformationen ständig gelöscht.

Um die Lebensdauer eines Cookies in PHP festzulegen, können Sie die Funktion session_set_cookie_params vor dem session_start:

verwenden %Vor%

Zum Beispiel ist 3600 Sekunden eine Stunde, für 2 Stunden 3600 * 2 = 7200.

Aber es ist ein Session-Cookie, der Browser kann es selbst ablaufen lassen, wenn Sie längere Sitzungen speichern möchten (wie Login erinnern), müssen Sie die Daten auf dem Server und einen Standard-Cookie auf der Client-Seite speichern.

Wenn Sie bei Verwendung von Cookies von einer Website weg navigieren, wird die Sitzung nicht unterbrochen.

    
DevWL 21.11.2013, 19:16
quelle
1

Es gibt zwei Dinge, die eine Sitzung effektiv beenden können:

  1. Der Cookie, der ihn mit dem Browser verbindet, wird zerstört. PHP verwendet normalerweise Sitzungscookies. Diese werden gelöscht, wenn der Browser geschlossen wird. Der Browser , nicht die Registerkarte. Sie können auch manuell gelöscht werden.
  2. Wenn der Server für eine bestimmte Zeit keine Anfrage vom Browser mit dem Sitzungscookie für die Sitzung erhalten hat (definiert in session.gc_maxlifetime ) und die Sitzungsdaten bereinigt.
Quentin 21.11.2013 19:09
quelle

Tags und Links