Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Sitzungsverwaltung

PHP-Sitzungsverwaltung

WBOY
WBOYOriginal
2016-08-08 09:21:04960Durchsuche
Ablaufzeit des aktuellen Caches lesen/festlegen
int session_cache_expire ([ string $new_cache_expire ] )
Wenn die Anfrage startet, wird die Cache-Ablaufzeit geändert Sie wird auf 180 Minuten zurückgesetzt und im Konfigurationselement session.cache_expire gespeichert. Daher muss für jede Anfrage session_cache_expire() vor dem Funktionsaufruf session_start() aufgerufen werden, um die Cache-Ablaufzeit festzulegen. Wenn new_cache_expire angegeben ist, verwenden Sie den Wert von new_cache_expire, um die aktuelle Cache-Ablaufzeit in Minuten festzulegen. Der Standardwert ist 180 (Minuten).
Cache-Limiter lesen/festlegen
string session_cache_limiter ([ string $cache_limiter ] )
Der Cache-Limiter definiert den HTTP-Antwortheader, der an die Cache-Steuerungsstrategie des Clients gesendet wird In . Der Client oder Proxyserver bestimmt die Caching-Regeln für den Seiteninhalt, indem er diese Antwortheaderinformationen erkennt. Stellen Sie den Cache-Limiter auf ein nocache verhindert, dass der Client oder Proxyserver Inhalte zwischenspeichert. öffentlich bedeutet, dass der Client oder Proxyserver Inhalte zwischenspeichern darf. privat bedeutet, dass der Client dies darf Es ist erlaubt, Inhalte zwischenzuspeichern, Proxyservern ist es jedoch nicht gestattet, Inhalte zwischenzuspeichern. Im privaten Modus verarbeiten einige Browser, einschließlich Mozilla, den Expire-Antwortheader möglicherweise nicht korrekt, indem sie verwenden Der Modus private_no_expire kann dieses Problem lösen: In diesem Modus wird der Expire-Antwortheader nicht an den Client gesendet.
Aktuelle Sitzungs-ID abrufen/festlegen
string session_id ([ string $id ] )
Wenn der Wert des ID-Parameters angegeben ist, verwenden Sie den angegebenen Wert als Sitzungs-ID. Die Funktion session_id() muss vor dem Aufruf der Funktion session_start() aufgerufen werden. Verschiedene Sitzungsmanager haben unterschiedliche Einschränkungen hinsichtlich der Zeichen, die in Sitzungs-IDs verwendet werden können. Beispielsweise erlaubt File Session Manager nur die folgenden Zeichen in Sitzungs-IDs: a-z A-Z 0-9 , (Komma) und - (Minuszeichen).
Sitzungsnamen lesen/festlegen
string session_name ([ string $name ] )
Die Funktion session_name() gibt den aktuellen Sitzungsnamen zurück. Wenn der Namensparameter angegeben ist, aktualisiert die Funktion session_name() den Sitzungsnamen und gibt den ursprünglichen Sitzungsnamen zurück. Wenn die Anfrage startet, wird der Sitzungsname zurückgesetzt und im Konfigurationselement session.name gespeichert. Um den Sitzungsnamen festzulegen, müssen Sie daher für jede Anfrage anrufen Die Funktion session_name() wird vor der Funktion session_start() oder session_register() aufgerufen. Der Sitzungsname muss mindestens aus einem Buchstaben bestehen und darf nicht nur aus Zahlen bestehen, andernfalls wird jedes Mal eine neue Sitzungs-ID generiert.
Speicherpfad der aktuellen Sitzung lesen/festlegen
string session_save_path ([ string $path ] )
Geben Sie den Pfad zum Speichern von Sitzungsdaten an. Die Funktion session_save_path() muss vor dem Aufruf der Funktion session_start() aufgerufen werden. Auf einigen Betriebssystemen wird empfohlen, Sitzungsdaten unter Verwendung von Pfaden in einem Dateisystem zu speichern, das eine große Anzahl kleiner Dateien effizient verarbeiten kann. Auf Linux-Plattformen bietet beispielsweise das reiserfs-Dateisystem eine bessere Leistung als das ext2fs-Dateisystem zum Speichern von Sitzungsdaten.
Starten Sie eine neue Sitzung oder verwenden Sie eine vorhandene Sitzung wieder.
bool session_start ( void )
session_start() erstellt eine neue Sitzung oder verwendet eine vorhandene Sitzung wieder. Wenn eine Sitzungs-ID per GET oder POST oder mithilfe eines Cookies übermittelt wird, wird die bestehende Sitzung wiederverwendet.
Alle Daten in einer Sitzung zerstören
bool session_destroy ( void )

session_destroy() Alle Daten in der aktuellen Sitzung zerstören Sitzung alle Daten, Es werden jedoch weder die mit der aktuellen Sitzung verknüpften globalen Variablen zurückgesetzt, noch wird das Sitzungscookie zurückgesetzt. Wenn Sie erneut Sitzungsvariablen verwenden müssen, müssen Sie die Funktion session_start() erneut aufrufen. Um die Sitzung vollständig zu zerstören, beispielsweise wenn sich der Benutzer abmeldet, muss auch die Sitzungs-ID zurückgesetzt werden. Wenn die Sitzungs-ID über ein Cookie übertragen wird, muss zusätzlich die Funktion setcookie() aufgerufen werden, um das Sitzungscookie des Clients zu löschen.

1. Die Sitzung ermittelt, ob derzeit $_COOKIE[session_name()];session_name() vorhanden ist. Gibt den COOKIE-Schlüsselwert zurück, der die session_id speichert. Dieser Wert kann aus PHP gefunden werden .ini. Wenn es nicht vorhanden ist, wird eine Sitzungs-ID generiert und dann als Wert von COOKIE an den Client übergeben. Dies entspricht der Ausführung des folgenden COOKIE Bitte beachten Sie, dass dieser Schritt die Operation setcookie() im Header ausführt und vorher nicht ausgegeben werden kann. PHP hat eine weitere Funktion session_regenerate_id(), wenn Sie diese Funktion verwenden, erfolgt vorher keine Ausgabe.
SetCookie (Session_name (), Session_id (), Session.cookie_lifetime, // Standard 0 Session.cookie_path, // Der Standard '/' Das aktuelle Programm und das Verzeichnis sind wirksam
session.cookie_domain,//default is empty
                                                                          ’ ’ s ’ s ’ s - s---- ,  SESS_'.session_id() Datei Lesen Sie den Inhalt der Datei, deserialisieren Sie sie und dann Fügen Sie es in $_SESSION ein.

2. Fügen Sie beispielsweise einen neuen Wert $_SESSION[ 'test'] ='blah'; hinzu im Speicher. Wenn die Skriptausführung beendet ist, schreiben Sie den Wert von $_SESSION in den durch session_id angegebenen Ordner und schließen Sie dann die zugehörigen Ressourcen


3. Das von gesendete COOKIE SESSION ist im Allgemeinen ein Instant-COOKIE und wird im Speicher gespeichert. Wenn der Ablauf manuell erzwungen werden muss, z. B. durch Abmelden, müssen Sie die SESSION löschen der Code. Es gibt viele Methoden:
1].
setcookie

(session_name(),session_id(),time() -8000000,..); ].

usset($_SESSION); //Dadurch werden alle $_SESSION-Daten gelöscht. COOKIE wird übergeben, es sind jedoch keine Daten vorhanden.
3]. session_destroy();// Diese Funktion ist gründlicher, lösche $_SESSION, lösche die Sitzungsdatei und session_id.
Beim erneuten Aktualisieren ohne Schließen des Browsers wird COOKIE in 2 und 3 übergeben, die Daten können jedoch nicht gefunden werden.


Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers Lang Ya Studio , Eine Vervielfältigung ist ohne die Erlaubnis des Bloggers nicht gestattet.

<?php
    // 初始化会话
    session_name(&#39;Session_test&#39;);
    session_id(&#39;safdsadfasdfsadfasdf&#39;);
    session_start();
    
    $_SERVER[&#39;user&#39;] = &#39;admin&#39;;
    echo $_SERVER[&#39;user&#39;]."<br>";
    
    echo $_COOKIE[session_name()];    
    
    //// 重置会话中的所有变量 -- 使用unset可以重置某个会话变量
//    $_SESSION = array();    
//    // 同时删除会话 cookie
//    if (ini_get("session.use_cookies")) 
//    {
//        $params = session_get_cookie_params();
//        setcookie(session_name(), '', time() - 42000,
//            $params["path"], $params["domain"],
//            $params["secure"], $params["httponly"]);    
//    }
//    // 最后,销毁会话
//    session_destroy(); 
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>

<body>
</body>
</html>

Das Obige hat die PHP-Sitzungsverwaltung eingeführt, einschließlich verschiedener Aspekte. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

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