Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erklärung der Sitzungszeiteinstellung in PHP

Detaillierte Erklärung der Sitzungszeiteinstellung in PHP

伊谢尔伦
伊谢尔伦Original
2017-04-28 11:52:222709Durchsuche

In den meisten Foren können Sie beim Anmelden die Ablaufzeit auswählen, z. B. Speichern für eine Woche, Speichern für einen Monat usw. Zu diesem Zeitpunkt können Sie die Ablaufzeit der Anmeldung über Cookies festlegen. Es gibt mehrere Möglichkeiten, die Ablaufzeit der Sitzung festzulegen:

1 Der Client verbietet keine Cookies

(1) Verwenden Sie session_set_cookie_params()Legt die Ablaufzeit der Sitzung fest. Diese Funktion kombiniert Sitzung mit Cookie, um die Ablaufzeit festzulegen. Wenn Sie möchten, dass die Sitzung nach einer Minute abläuft, lautet das Codebeispiel wie folgt:

<?php
 $time = 1*60;                   //设置session失效时间
 session_set_cookie_params($time);      // 使用函数
 session_start();                 //初始化  session
 $_SESSION["username"] = &#39;tom&#39;;
?>

Hinweis: session_set_cookie_params() muss vor session_start() aufgerufen werden.

Hinweis: Diese Funktion wird nicht empfohlen und kann bei einigen Browsern zu Problemen führen. Daher wird die Ablaufzeit im Allgemeinen manuell festgelegt.

(2) Verwenden Sie die Funktion setcookie(), um die Ablaufzeit für die Sitzung festzulegen. Damit die Sitzung nach einer Minute abläuft, lautet das Codebeispiel wie folgt:

<?php
 session_start();
 // session失效时间
 $time = 1*60;                    
 // 使用 setcookie 手动设置 session失效时间      
 setcookie(session_name(),session_id(),time()+$time.&#39;/&#39;);    
 $_SESSION["username"] = &#39;tom&#39;;
?>

Hinweis: In der Funktion setcookie() des obigen Beispielcodes ist session_name der Name der Sitzung und session_id die Identifikation des Client-Benutzers. Da session_id ein zufällig generierter eindeutiger Name ist, ist die Sitzung relativ sicher. Die Ablaufzeit ist dieselbe wie die des Cookies. Der letzte Parameter ist optional und gibt den Pfad an, in dem das Cookie platziert wird.

2. Cookies auf dem Client deaktivieren

Wenn der Client Cookies deaktiviert, ist die Übertragung zwischen Sitzungsseiten ungültig auf dem Kunden Stellen Sie sich eine große Supermarktkette vor. Wenn Sie in einem der Supermärkte eine Mitgliedskarte beantragen, zwischen den Supermärkten jedoch keine Internetverbindung besteht, kann die Mitgliedskarte nur in diesem Supermarkt verwendet werden. Es gibt mehrere Möglichkeiten, dieses Problem zu lösen:

(1) Erinnern Sie Benutzer daran, dass Cookies aktiviert sein müssen, bevor sie sich anmelden. Dies ist die Praxis vieler Foren.

(2) Setzen Sie session.use_trans_sid =1 in der php.ini-Datei oder aktivieren Sie die Option -enable-trans-sid beim Kompilieren, damit PHP session_id automatisch seitenübergreifend weitergibt.

(3) Übergeben Sie die session_id über die GET-Methode in versteckter Form.

(4) Verwenden Sie eine Datei oder Datenbank zum Speichern der Sitzungs-ID und rufen Sie sie während der Übertragung zwischen Seiten manuell auf.

Die zweite Methode oben wird nicht im Detail vorgestellt, da Benutzer die Datei php.ini auf dem Server nicht ändern können. Bei der dritten Methode können wir Cookie nicht zum Festlegen der Ablaufzeit verwenden, aber der Anmeldestatus ändert sich nicht. Die vierte und wichtigste Methode kann bei der Entwicklung von Websites auf Unternehmensebene verwendet werden, wenn

Sitzungsdateien auftreten, die den Server verlangsamen. Hier stellen wir die dritte Übertragungsmethode mit der Methode GET vor. Der Beispielcode lautet wie folgt: Der Code zum Empfangen des Seitenkopfes:

<?php
  $session_name = session_name();        //取得 session 名称
  $session_id = $_GET[$session_name];    // 取得 session_id GET方式
  session_id($session_id);               // 关键步骤
  session_start();
  $_SESSION[&#39;admin&#39;] = &#39;soft&#39;;
?>

Beschreibung: Die Sitzung erfolgt nach der Anforderung Wenn das Cookie zu diesem Zeitpunkt deaktiviert ist, kann die Sitzungs-ID nicht weitergegeben werden. Wenn die nächste Seite angefordert wird, wird eine Sitzungs-ID neu generiert, was dazu führt, dass die Sitzung nicht weitergegeben werden kann.

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der Sitzungszeiteinstellung in PHP. 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