Detaillierte Erklärung der Sitzungszeiteinstellung in PHP
1. Der Client verbietet keine Cookies
(1) Verwenden Sie session_set_cookie_params(), um die Ablaufzeit der Sitzung festzulegen. Diese Funktion ist die Kombination der Sitzung mit dem 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"] = 'tom'; ?>
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.'/'); $_SESSION["username"] = 'tom'; ?>
Erklärung: In Der obige Beispielcode In der Funktion setcookie() 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. Der Client deaktiviert Cookies.
Wenn der Client Cookies deaktiviert, ist die Übertragung zwischen Sitzungsseiten ungültig. Sie können sich vorstellen, dass der Client Cookies deaktiviert, wenn in einer der Supermärkte Wenn Sie in einem Supermarkt eine Mitgliedskarte beantragen, aber zwischen den Supermärkten keine Internetverbindung besteht, kann die Mitgliedskarte nur in dem Supermarkt verwendet werden, in dem Sie sie beantragt haben. 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 Möglichkeit kann verwendet werden, wenn Sie bei der Entwicklung von Websites auf Unternehmensebene auf
Sitzungsdateien stoßen, die den Server verlangsamen. Hier stellen wir die dritte Übertragungsmethode mit der GET-Methode vor. Der Beispielcode zum Empfangen des Seitenheaders lautet:
<?php $session_name = session_name(); //取得 session 名称 $session_id = $_GET[$session_name]; // 取得 session_id GET方式 session_id($session_id); // 关键步骤 session_start(); $_SESSION['admin'] = 'soft'; ?>
Beschreibung: Wenn dies der Fall ist, generiert die Sitzung eine Sitzungs-ID Wenn Cookies deaktiviert sind, kann die Sitzungs-ID nicht übergeben werden. Beim Anfordern der nächsten Seite wird eine Sitzungs-ID neu generiert, was dazu führt, dass die Sitzung nicht zwischen den Seiten übertragen werden kann.
Empfohlenes Tutorial: „PHP-Tutorial“
Das obige ist der detaillierte Inhalt vonEine kurze Analyse der Sitzungszeiteinstellung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!