Heim  >  Artikel  >  Backend-Entwicklung  >  So legen Sie die PHP-Sitzungszeit fest

So legen Sie die PHP-Sitzungszeit fest

藏色散人
藏色散人Original
2021-03-29 09:42:342154Durchsuche

So legen Sie die PHP-Sitzungszeit fest: Öffnen Sie zuerst php.ini und suchen Sie nach dem Abschnitt „Sitzungseinstellungen“. Legen Sie dann die Sitzungslebensdauer fest, indem Sie „session.gc_maxlifetime“ festlegen.

So legen Sie die PHP-Sitzungszeit fest

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

php-Einstellungssitzung (Ablauf, Ungültigkeit, Gültigkeitsdauer)

Es gibt viele Aspekte beim Einrichten von Sitzungen in php, einschließlich Sitzungseinstellungswert oder legen Sie den Ablauf, den Ablauf und die Gültigkeitsdauer direkt fest. Der folgende Editor führt Sie in die Verwendung ein.

Sehen wir uns zunächst an, wie man die Sitzung in php.ini einrichtet und im Abschnitt „Sitzungseinstellungen“ nach dem folgenden Element sucht:

   session.save_path = 
         "N;/path"
        
 
         session.save_path = 
         "C:/Temp"
           #此处以你自己设定的路径为准

Diese Einstellung ermöglicht uns zum Speichern der Sitzung Das Verzeichnis führt ein mehrstufiges Hashing durch, wobei „N“ die Anzahl der festzulegenden Verzeichnisebenen darstellt und der folgende „/pfad“ den Stammverzeichnispfad darstellt, in dem die Sitzungsdatei gespeichert ist. Zum Beispiel, wenn Wir stellen es auf das folgende Format ein, der Code lautet wie folgt:

 session.save_path = 
         "2;C:/Temp"

Die obigen Einstellungen bedeuten, dass wir PHP-Sitzungsdateien in zwei Verzeichnisebenen speichern. Jede Verzeichnisebene ist 0-9 und a-z, mit insgesamt 36 alphanumerische Namen als Verzeichnisnamen. Auf diese Weise kann die Anzahl der Verzeichnisse zum Speichern von Sitzungen 36 * 36 erreichen, insgesamt 1332 Ordner. Ich glaube, das reicht für einen einzelnen Server, wenn Ihre Systemarchitektur für die gemeinsame Nutzung von Sitzungsdaten ausgelegt ist Bei mehreren Servern können Sie die Verzeichnisebene auf 3 oder mehr erhöhen.

Einstellung der Sitzungsablaufzeit

Fortsetzen des Sitzungsthemas in PHP In PHP wird der Lebenszyklus der Sitzung hauptsächlich durch Festlegen von session.gc_maxlifetime festgelegt, z. B. durch den folgenden Code:

       <?php 
        
 
         ini_set
         (
         &#39;session.gc_maxlifetime&#39;
         , 3600); 
         //设置时间 
        
 
         ini_get
         (
         &#39;session.gc_maxlifetime&#39;
         );
         //得到ini中设定值 
        
 
         ?>

[Empfohlenes Lernen: PHP-Video-Tutorial

Das Folgende stellt eine von anderen gepackte Funktion dar, die ich jedoch nicht getestet habe. Der Code lautet wie folgt:

       <?php 
        
 
         function 
          start_session(
         $expire 
          = 0) 
        
 
         { 
        
 
          
         if 
          (
         $expire 
          == 0) { 
        
 
          
         $expire 
          = 
         ini_get
         (
         &#39;session.gc_maxlifetime&#39;
         ); 
        
 
          
         } 
         else 
          { 
        
 
          
         ini_set
         (
         &#39;session.gc_maxlifetime&#39;
         , 
         $expire
         ); 
        
 
          
         } 
        
 
          
         if 
          (emptyempty(
         $_COOKIE
         [
         &#39;PHPSESSID&#39;
         ])) { 
        
 
          
         session_set_cookie_params(
         $expire
         ); 
        
 
          
         session_start(); 
        
 
          
         } 
         else 
          { 
        
 
          
         session_start(); 
        
 
          
         setcookie(
         &#39;PHPSESSID&#39;
         , session_id(), time() + 
         $expire
         ); 
        
 
          
         } 
        
 
         } 
        
 
         ?>

Verwendung:

Start_sitzung hinzufügen. 600); //600 Sekunden Läuft später ab.

So stellen Sie sicher, dass die Sitzung nie abläuft

Öffnen Sie die php.ini-Einstellungsdatei und ändern Sie die drei Zeilen wie folgt:

1. session.use_cookies

Setzen Sie diesen Wert auf 1 und verwenden Sie Cookies, um die Sitzungs-ID zu übergeben

2 . cookie_lifetime

Dies stellt die Zeit dar, die die SessionID im Client-Cookie gespeichert wird. Der Standardwert ist 0, was bedeutet, dass die SessionID ungültig wird, sobald der Browser geschlossen wird... Aus diesem Grund kann die PHP-Sitzung nicht ausgeführt werden dauerhaft genutzt werden! Stellen wir es also auf eine Zahl ein, die wir für groß halten, wie wäre es mit 999999999, das ist in Ordnung! das ist alles.

3. session.gc_maxlifetime

Dies ist die Zeit, die Sitzungsdaten auf der Serverseite gespeichert werden. Wenn diese Zeit überschritten wird, werden die Sitzungsdaten automatisch gelöscht! Stellen wir ihn also ebenfalls auf 99999999 ein.

Das ist alles, alles ist in Ordnung. Wenn Sie es nicht glauben, testen Sie es einfach und sehen Sie - richten Sie eine Sitzung ein und kommen Sie nach 10 anderthalb Tagen wieder. Wenn Ihr Computer keinen Stromausfall hat Während der Ausfallzeit können Sie diese Sitzungs-ID weiterhin sehen.

Natürlich ist es auch möglich, dass Sie nicht die Berechtigung haben, den Server zu steuern, und nicht so viel Glück haben wie ich, die php.ini-Einstellungen zu ändern. Natürlich müssen wir uns darauf verlassen Der Client speichert Cookies und speichert die erhaltene Sitzungs-ID, legt den Wert dieses Cookies fest und übergibt diesen Wert an die Funktion session_id(). Die spezifische Methode lautet wie folgt:

Das obige ist der detaillierte Inhalt vonSo legen Sie die PHP-Sitzungszeit fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn