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 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.
Empfehlungen zu verwandten Themen: PHP-Sitzung (einschließlich Bilder, Videos, Fälle)
(2) Verwenden Sie setcookie The ()-Funktion kann die Ablaufzeit für die Sitzung festlegen, damit die Sitzung nach einer Minute abläuft. Das Codebeispiel lautet wie folgt:
<?php session_start(); // session失效时间 $time = 1*60; // 使用 setcookie 手动设置 session失效时间 setcookie(session_name(),session_id(),time()+$time.'/'); $_SESSION["username"] = 'tom'; ?>
Hinweis: In der Funktion setcookie() des obigen Beispielcodes lautet der Sitzungsname ist der Name der Sitzung, session_id ist die Identifikation des Client-Benutzers, da session_id ein zufällig generierter eindeutiger Name ist, sodass Session relativ sicher ist. 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 Wenn Sie bei einer Supermarktkette eine Mitgliedskarte beantragen, zwischen den Supermärkten jedoch 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. Der vierte Punkt ist auch der wichtigste. Wenn Sie eine Website auf Unternehmensebene entwickeln, können Sie ihn verwenden, wenn Sie auf eine Sitzungsdatei stoßen, die den Server verlangsamt. 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 das Cookie deaktiviert ist, 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 weitergeleitet werden kann
Empfohlenes Tutorial: „PHP-Tutorial》
Das obige ist der detaillierte Inhalt vonSo legen Sie die Sitzungszeit in PHP fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!