Heim >Backend-Entwicklung >PHP-Tutorial >So verstehen Sie die Sitzungssteuerung in PHP

So verstehen Sie die Sitzungssteuerung in PHP

一个新手
一个新手Original
2017-09-12 10:07:331397Durchsuche

Die Sitzungssteuerung ist eine Kommunikationsmethode, die Benutzer verfolgt. Die Verwendung der Sitzungssteuerung basiert hauptsächlich auf den folgenden Punkten: Aufgrund der zustandslosen Natur des HTTP-Protokolls kann die Zuordnung zwischen zwei Anforderungen für gewöhnlich nicht hergestellt werden Bei den Datenübertragungsmethoden zwischen Get und Post handelt es sich hauptsächlich um die Übertragung von Parametern und die Eingabe von Daten. Bei mehreren Seiten auf der Website eines Benutzers kann es zu einer Vielzahl unterschiedlicher Daten kommen Unterschiedliche Berechtigungen führen zu unterschiedlichen Seiten, unterschiedlichen Betriebsmethoden usw. Die Verwendung von get und post ist sehr umständlich.

1. Cookie-Methode

Um Benutzer zu verfolgen, müssen Benutzer markiert werden, die Idee von ​​Cookies Das heißt, wenn ein Benutzer die erste Seite der Website besucht, speichert der Webserver die Informationskennung des Benutzers in Form von Textdateien auf dem Computer des Benutzers Wird in Form von Schlüssel-Wert-Paaren gespeichert. Wenn der Benutzer die zweite Seite der Website besucht, greift er über die HTTP-Header-Informationen auf den Server zu und überprüft die Benutzerinformationen gerade erneut. Dadurch wird vermieden, dass der Benutzer bei jedem Besuch Informationen eingeben muss, um festzustellen, ob die Besuche zwischen mehreren Seiten von demselben Benutzer stammen.

Funktion zum Festlegen von Informationen für Cookies: setcookie($key, $value, $expire, $path, $domain, $secure).

Die Parameter sind: Schlüssel, Wert, Ablaufzeit (UNIX-Zeitstempel, der Standardwert ist 0, was bedeutet, dass das Cookie verschwindet, wenn der Browser geschlossen wird) und der Pfad zum Zugriff auf das Cookie Das Skript unter diesem Pfad auf dem Server kann auf Cookies zugreifen (Standard ist das Stammverzeichnis), den Domänennamen für den Zugriff auf Cookies verwenden, nur die Website-Seite unter dem Domänennamen (z. B. www.example.com) kann auf Cookies zugreifen und Cookies aktivieren ob es sich um eine sichere https-Verbindung handelt.

Zeichnen Sie beispielsweise nach dem Absenden des Formulars per Post einige Informationen auf.

<?php    
    if(isset($_POST)){        
    $time = time();        
    setcookie(&#39;user&#39;, $_POST[&#39;user&#39;], $time+3600);  // 时间参数需要比当前时间点大,以表示cookie信息的有效时间        s
    etcookie(&#39;data&#39;, array(1,2,3), $time+1200);  // 可以存放各种数据     }
   保存cookie成功后,可直接到$_COOKIE超全局数组中以键名取得该值,非常方便,如echo $_COOKIE[&#39;user&#39;],基本的数据类型都支持       cookie的删除仍是通过setcookie进行,最好写成将时间提前的形式,或者直接写一个键名,比如在用户点击退出时进行该项操作
 setcookie(&#39;user&#39;, &#39;&#39;, time()-200);  // 时间提前,相对当前时间 
 setcookie(&#39;user&#39;);  // 简写,只写键名
  2.session方式

Die Sitzung ähnelt einem Cookie, mit der Ausnahme, dass die Informationen ursprünglich auf der Benutzerseite gespeichert wurden, aber Jetzt wird es auf der Serverseite gespeichert, aber in Der Client generiert eine Identifikations-ID, die standardmäßig im lokalen Cookie des Benutzers gespeichert wird, sodass die Sitzung mit dem Cookie verknüpft ist. Auf diese Weise werden die Informationen beim ersten Besuch des Benutzers auf dem Webserver gespeichert und dem Benutzer zufällig eine Zeichenfolge fester Länge (Sitzungs-ID) zugewiesen Diese ID wird verwendet, um die entsprechenden Benutzerdaten auf dem Server zu finden, sodass der Benutzer verfolgt werden kann. Eine Sitzung, die Cookies verwendet, wird als Cookie-basierte Sitzung bezeichnet.

Benutzer können ihren Browser jedoch so einstellen, dass Cookies deaktiviert werden (obwohl dies im Allgemeinen nicht der Fall ist). Einige Websites zwingen Benutzer dazu, Cookies zu aktivieren, nachdem sie festgestellt haben, dass Cookies deaktiviert sind. In diesem Fall gibt es jedoch eine solche Situation. Die Cookie-basierte Methode funktioniert derzeit nicht. Sie kann im Get-Formular mit einer Sitzungs-ID nach der URL übergeben werden. Natürlich kann sie auch über den HTTP-Beitrag übergeben werden.

Verwendung der Sitzung

Verwenden Sie zunächst session_start(), um eine Sitzung zu öffnen. Beachten Sie, dass für diese Art von Netzwerkfunktion keine Ausgabe davor zulässig ist, auch wenn vor dem Bezeichner

Registrieren Sie dann die Sitzungsvariable, dh greifen Sie auf Benutzerinformationen oder nützliche Daten zu Wenn Sie eine beliebige Funktion verwenden, speichern Sie sie einfach direkt im superglobalen Array $ _SESSION, z. B. $_SESSION['user'] = $_POST[['user']. Diese Daten werden in einer Datei auf dem Server gespeichert, oder natürlich befindet sich möglicherweise im Cache (Memcache, Redis).

Beim Springen zu anderen Seiten muss die Sitzung zuerst auf anderen Seiten geöffnet werden, immer noch mit session_start(). Wenn die Sitzung bereits geöffnet ist, gibt diese Funktion die aktuelle Sitzung zurück, wenn nicht, öffnen Sie sie erneut.

Schließlich müssen diese Variablen abgemeldet werden, wenn der Benutzer die Konversation aus irgendeinem Grund verlässt oder zerstört. Aufgeteilt in vier Schritte:

1.仍然是先开启会话,或者是跳转到其他页面时,再次返回已经存在的会话,需要确保前面没有输出
    session_start();   // 开启或返回一个会话
 
2.清空$_SESSION数组中的相关变量
  unset($_SESSION[&#39;robert&#39;])  // 销毁某一个变量  $_SESSION = array();  // 或者一次性全部销毁会话变量
3.清除保存在客户端的cookie,别忘了session id还在用户计算机上面
if(
isset(
$_COOKIE[
session_name
()])){        
unset(
$_COOKIE[
session_name()]);    
//
session_name()获取sesion的名,session id也是以名和值的形式存储的
    }
4.彻底销毁存储到服务器的信息
 session_destroy();

Nach vier Schritten endet eine Sitzung.

3. Die grundlegenden Schritte zur Verwendung der Sitzungssteuerung sind wie folgt:

1) Starten Sie eine Sitzung

Rufen Sie einfach die Funktion session_start() auf. Informationen zu den spezifischen Funktionen der Funktion finden Sie in der PHP-Dokumentation. Es ist zu beachten, dass diese Funktion zu Beginn des Skripts über die Sitzung aufgerufen werden muss. Andernfalls sind nicht alle in der Sitzung gespeicherten Informationen im Skript verfügbar. Zusätzlich zum manuellen Aufruf der Funktion session_start() können Sie PHP auch automatisch so konfigurieren, dass es automatisch aufgerufen wird. Sie können es googeln.

2) Registrieren Sie eine Sitzungsvariable

Ab PHP4.1 werden Sitzungsvariablen im superglobalen Array $_SESSION gespeichert. Um eine Sitzungsvariable zu erstellen, müssen Sie nur ein Element im Array festlegen, z. B. $_SESSION['myvar'] = 5;

 3) Verwenden Sie eine Sitzungsvariable

Es ist sehr einfach, eine Sitzungsvariable zu verwenden, um auf die gespeicherte Sitzungsvariable zuzugreifen. Echo $_SESSION['mywar'] gibt beispielsweise aus. Bevor Sie eine Sitzung verwenden, müssen Sie zunächst die Funktion session_start() verwenden, um eine Sitzung zu starten.

4) Variablen abmelden und Sitzungen zerstören

Um die Registrierung von Variablen aufzuheben, verwenden Sie einfach unset($_SESSION['myvar']), wenn Sie alle Sitzungsvariablen auf einmal zerstören möchten , können Sie unset ($_SESSION) verwenden. Wenn Sie mit der Verwendung einer Sitzung fertig sind, sollten Sie zuerst die Registrierung aller Variablen aufheben und dann session_destroy() aufrufen, um die Sitzungs-ID zu löschen.

Das obige ist der detaillierte Inhalt vonSo verstehen Sie die Sitzungssteuerung 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