2017-07-06 3 views
-1

Dies ist das Bild aus dem Lehrbuch:Session-Objekt und serialisierten Datei in php

enter image description here

und es sagt, dass „Weil Serverspeicher eine endliche Ressource ist, in dem Speicher geladen Objekte freigegeben werden, wenn die Anforderung abgeschlossen "

ich habe 3 Fragen:

  1. was ist mit den serialisierten Dateien auf Server-Datenträger? Werden sie zerstört, wenn der Browser geschlossen ist?

  2. Wenn wir sagen, dass eine Sitzung eine Zeitüberschreitung aufweist, ist das Sitzungsobjekt im Serverspeicher zerstört oder die serialisierte Datei auf der Serverfestplatte ist zerstört?

  3. Jedes Mal, wenn wir eine Sitzungsvariable setzen, wird die serialisierte Datei auf dem Server automatisch mit php aktualisiert?

+1

1: nein, 2: ja/nein, 3: ja. Siehe hier: https://serverfault.com/questions/138214/are-php-session-files-e-e-deleted – vaso123

+0

@ vasso123 1 ist nicht immer "nein", es hängt von der Konfiguration ab. 'php.ini' schlägt wieder zu! – conradkdotcom

Antwort

0
  1. Standardmäßig hängt dies von der INI-Konfiguration und insbesondere den session.cookie_lifetime Konfigurationswert. Weitere Informationen here.

    Einige PHP-Frameworks wie Symfony haben unterschiedliche Session-Handling, in diesem Fall müssen Sie sich auf die Dokumentation Ihres Frameworks beziehen.

  2. Auch hier kommt es auf die Konfiguration an. Wenn Sie die Standard-PHP-Sitzungen verwenden, befindet sich eine Datei im Ordner session.save_path.

    Wenn Sie ein Framework erneut verwenden, beziehen Sie sich auf dessen Dokumentation. Die Sitzung wird nicht im PHP-Speicher gespeichert, da in PHP-Anfragen kein Speicher freigegeben ist.

  3. Ja, vorausgesetzt, Sie verwenden session_start, bevor Sie die $_SESSION Variablen ändern.

+0

danke für deine antwort. Ich verstehe es immer noch nicht, wenn eine Sitzung Timeout ist, was bedeutet das? Es bedeutet, dass das Sitzungsobjekt release d oder die Sitzungsdatei gelöscht ist? –

+0

Es bedeutet eines von 2 Dingen: Entweder wurde der Sitzungscookie gelöscht oder die Sitzungsdatei auf dem Server wurde gelöscht. Der Sitzungscookie enthält eine ID, die dem Server hilft, die Sitzungsdatei auf dem Server zu finden. – conradkdotcom

+0

aber ist Session-Cookie nicht auf der Client-Seite gespeichert? Wie kann der Server Cookies auf dem Computer des Kunden löschen? –

Verwandte Themen