Stellen Sie die Sitzungszeitlimit in PHP fest

Stellen Sie die Sitzungszeitlimit in PHP fest
Die Inaktivität eines registrierten Benutzers wird durch das Timeout der Sitzung überprüft. Wenn sich ein Benutzer auf einer Website anmeldet, wird eine Sitzung für diesen Benutzer erstellt und die Sitzung wird zerstört, wenn sich der Benutzer anmeldet oder den Browser schließt. Das Timeout der Sitzung wird verwendet, um die Zeitlimit für die Inaktivität des Benutzers festzulegen. Nehmen wir an, wenn das Timeout -Grenzwert für Sitzungen auf 60 Sekunden festgelegt ist und der Benutzer 60 Sekunden lang inaktiv ist, wird die Sitzung dieses Benutzers abgelaufen und der Benutzer muss sich erneut anmelden, um auf die Website zuzugreifen. Die Art und Weise, die Sitzungszeitlimit in PHP festzulegen oder zu aktualisieren, wurde in diesem Tutorial gezeigt.

Sitzung in PHP

Der Session_start () Funktion wird verwendet, um eine neue Sitzung für den Benutzer zu erstellen. Der Standard -Sitzungsname ist phpSessid und wird verwendet, um die Sitzung zu überprüfen oder nicht. Wenn keine Cookie- oder Sitzungsinformationen gefunden werden, wird für den Benutzer eine neue Sitzung generiert, andernfalls wird die aktuelle Sitzung für den Benutzer verwendet.

Sitzung Timeout einstellen

Die Zeitüberschreitungsgrenze der Sitzung kann festgelegt werden, indem der Wert von zwei Richtlinien in der festgelegt wird Php.Ini Datei oder Verwendung der Funktion ini_set () im PHP -Skript. Die Richtlinien sind unten angegeben.

  1. Sitzung.gc_maxlifetime
  2. Es wird verwendet, um das Zeitlimit in Sekunden festzulegen, um die Sitzungsinformationen für lange Zeit auf dem Server zu speichern.

  3. Sitzung.cookie_lifetime
  4. Es wird verwendet, um die Ablaufzeitlimit für den PhpSessid -Cookie festzulegen.

Stellen Sie die Sitzungszeitlimit in PHP fest

Die Möglichkeit, den Timeout -Wert der Sitzung in PHP für die Behandlung der Sitzung eines Benutzers festzulegen, wurden in diesem Teil des Tutorials unter Verwendung mehrerer Beispiele gezeigt.

Beispiel 1: Setzen Sie den Sitzungswert der Sitzung mithilfe von PHP-Direktiven

Erstellen Sie eine PHP -Datei mit dem folgenden Skript, um die Art und Weise zu kennen. Der ini_set () Die Funktion wurde im Skript verwendet, um den Wert der festzustellen Sitzung.gc_maxlifetime Und Sitzung.cookie_lifetime Richtlinien. Die Dauer der Sitzung wurde für Testzwecke auf 2 Sekunden eingestellt. Die superglobale Variable $ _cookie -Array wurde hier verwendet, um die Sitzung zu behandeln. Die neue Sitzung wird für den Benutzer generiert, wenn das Skript im Browser ausgeführt wird, und nach zwei Sekunden wird die Sitzung abgelaufen.

// Stellen Sie das Sitzungszeitübergang für 2 Sekunden fest
$ timeout = 2;
// Setzen Sie die Maxlifetime der Sitzung
ini_set ("Sitzung.gc_maxlifetime ", $ timeout);
// Setzen Sie das Cookie -Lebensdauer der Sitzung
ini_set ("Sitzung.cookie_lifetime ", $ timeout);
// eine neue Sitzung starten
Session_Start ();
// Setzen Sie den Standard -Sitzungsnamen
$ s_name = session_name ();
// Überprüfen Sie, ob die Sitzung existiert oder nicht
if (isset ($ _cookie [$ s_name]))
setCookie ($ s_name, $ _cookie [$ s_name], time () + $ timeout '/');
Echo "Sitzung wird für $ s_name erstellt.
";

anders
Die Echo -Sitzung ist abgelaufen.
";
?>

Ausgang:

Die folgende Ausgabe erscheint nach der Ausführung des obigen Skripts zum ersten Mal. Die Ausgabe zeigt den Benutzernamen der Standardsitzung PhpSessid an.

Die folgende Ausgabe wird angezeigt, wenn die Seite nach 2 Sekunden aktualisiert wird.

Beispiel-2: Setzen Sie den Sitzungswert mit $ _Session Array mit dem Sitzungswert

Erstellen Sie eine PHP -Datei mit dem folgenden Skript, um den Timeout -Wert der Sitzung mithilfe der PHP -Superglobal -Variablen $ _Session festzulegen. Die Zeitdauer der Sitzung wurde für Testzwecke auf 5 Sekunden eingestellt. Als nächstes hat die Anfragezeit des Benutzers für die Seite in einer Variablen benannt gespeichert $ Zeit. Wenn die Zeitdauer zwischen den $ Zeit Die variable und die letzte Aktivität des Benutzers beträgt mehr als 5 Sekunden, dann wird die aktuelle Sitzung des Benutzers zerstört und eine neue Sitzung wird generiert. Der Session_unset () Und Session_destroy () Funktionen haben im Skript verwendet, um die Sitzung zu zerstören.

// eine neue Sitzung starten
Session_Start ();
// Setzen Sie die Sitzungsdauer für 5 Sekunden
$ Dauer = 5;
// Lesen Sie die Anforderungszeit des Benutzers
$ time = $ _server ['request_time'];
// Überprüfen Sie, ob die Sitzung des Benutzers existiert oder nicht
if (isset ($ _ session ['last_activity']) &&
($ time - $ _Session ['last_activity'])> $ duration)
// die Sitzungsvariablen abschließen
Session_unset ();
// die Sitzung zerstöre
Session_destroy ();
// eine weitere neue Sitzung starten
Session_Start ();
Echo "Eine neue Sitzung wird erstellt.
";

anders
echo "aktuelle Sitzung gibt es.
";
// Legen Sie die Zeit der letzten Aktivität des Benutzers fest
$ _Session ['last_activity'] = $ time;
?>

Ausgang:

Die folgende Ausgabe erscheint nach der Ausführung des obigen Skripts zum ersten Mal.

Die folgende Ausgabe wird angezeigt, wenn die Seite nach 5 Sekunden aktualisiert wird.

Beispiel-3: Setzen Sie den Sitzungswert des Sitzungswerts mit $ _Session Array und Time () -Funktion

Erstellen Sie eine PHP -Datei mit dem folgenden Skript, um den Timeout -Wert der Sitzung mithilfe der PHP -Superglobal -Variablen festzulegen, $ _Session, und die integrierte PHP-Funktion, Zeit (). Die Funktion Time () gibt den aktuellen Zeitstempelwert des Systems zurück. Die Zeitdauer der Sitzung wurde im Skript auf 600 Sekunden (10 Minuten) festgelegt.

Die $ _Session ['start'] wurde verwendet, um die Startzeit der Sitzung zu speichern. Wenn die Zeitdauer zwischen der aktuellen Zeit und der Sitzungszeit von mehr als 10 Minuten beträgt, wird die aktuelle Sitzung des Benutzers zerstört. Die Funktionen Session_unset () und Session_Destroy () wurden im Skript als vorheriges Beispiel verwendet, um die Sitzung zu zerstören.

// eine neue Sitzung starten
Session_Start ();
// Überprüfen Sie, ob die Sitzungszeit für die Sitzung festgelegt ist oder nicht
Wenn(!isset ($ _ session ['start'])))

// Setzen Sie die Sitzungszeit für die Sitzung
$ _Session ['start'] = time ();

// Überprüfen Sie, ob die Sitzung abgelaufen ist oder nicht
if (isset ($ _ session ['start']) && (time () - $ _session ['start']> 600))
// die Sitzungsvariablen abschließen
Session_unset ();
// die Sitzung zerstöre
Session_destroy ();
Die Echo -Sitzung ist abgelaufen.
";

anders
echo "aktuelle Sitzung gibt es.
";
?>

Ausgang:

Die folgende Ausgabe erscheint nach der Ausführung des obigen Skripts zum ersten Mal. Die abgelaufene Nachricht wird angezeigt, wenn die Seite nach 10 Minuten aktualisiert wird.

Abschluss

In diesem Tutorial wurden drei verschiedene Möglichkeiten für den Zeitlimitwert für den Umgang mit der Sitzung eines Benutzers in PHP gezeigt. Die PHP -Benutzer erhalten das grundlegende Konzept der Implementierung der Sitzung des Benutzers mit $ _cookie und $ _Session Variablen und können sie nach dem Lesen dieses Tutorials in ihrem Skript anwenden.