Heim > Artikel > Backend-Entwicklung > Cookies und Sitzungen in PHP
In PHP gibt es zwei sehr wichtige Funktionen, unser Cookie und unsere Sitzung. Wie werden sie also verwendet und was ist der Unterschied?
In diesem Artikel erfahren Sie mehr über Cookies und Sitzungen
Cookies sind Daten, die im Client-Browser gespeichert werden. Wir verwenden Cookies, um Benutzerdaten zu verfolgen und zu speichern . Im Allgemeinen werden Cookies über HTTP-Header vom Server an den Client zurückgegeben. Die meisten Webprogramme unterstützen Cookie-Vorgänge. Da Cookies im HTTP-Header vorhanden sind, müssen sie gesetzt werden, bevor andere Informationen ausgegeben werden, ähnlich wie bei den Nutzungsbeschränkungen der Header-Funktion.
Cookie-Methode festlegen
setcookie("name",'zhangsan',time()+60);/ /Stellen Sie die Cookie-Gültigkeitszeit auf 60 Sekunden ein
//setcookie("visittime",date("y-m-d H:i:s"),time()+60);//Legen Sie die Variable fest, die das speichert Cookie-Ablaufzeit
Cookie-Methode lesen
Cookie-Methode löschen
setcookie("name", "" ,time()-1);//Setzen Sie die Cookie()-Zeit auf die aktuelle Zeit minus 1. Die Funktion time() gibt den aktuellen Zeitstempel in Sekunden zurück. Durch Subtrahieren von 1 Sekunde von der Ablaufzeit erhält man die vergangene Zeit , also Cookies löschen
Um Cookies zu löschen, müssen Sie lediglich den zweiten Parameter in der Funktion setcookie() auf einen Nullwert setzen und die Ablaufzeit des dritten Parameters Cookie auf einen kürzeren Wert als den aktuellen festlegen Zeit des Systems
Nachdem wir Cookies verstanden haben, werfen wir einen Blick auf die Sitzung
Sitzung speichert die Sitzungsdaten des Benutzers auf dem Server, mit Nr Größenbeschränkung durch eine session_id wird zur Benutzeridentifizierung verwendet. Standardmäßig wird die PHP-Sitzungs-ID durch Cookies gespeichert, daher ist seesion in gewissem Umfang auf Cookies angewiesen. Dies ist jedoch nicht absolut. Die Sitzungs-ID kann auch über Parameter implementiert werden. Solange die Sitzungs-ID zur Identifizierung an den Server übergeben werden kann.
Sitzung verwenden
session_start();$_SESSION['test'] = time();var_dump($_SESSION);
session kodiert und dekodiert automatisch den festzulegenden Wert, sodass die Sitzung unterstützt werden kann Jeder Datentyp, einschließlich Daten und Objekte.
session_start();$_SESSION['ary'] = array('name' => 'jobs');$_SESSION['obj'] = new stdClass();var_dump($_SESSION);
Sitzungen werden standardmäßig in Form von Dateien auf dem Server gespeichert. Wenn eine Sitzung auf einer Seite geöffnet wird, wird daher ausschließlich die Sitzungsdatei belegt. Dies führt zu anderen gleichzeitigen Zugriffen des aktuellen Benutzers nicht in der Lage sein, auszuführen und zu warten. Dieses Problem kann durch die Verwendung von Cache- oder Datenbankspeichern gelöst werden, worüber wir in einigen Fortgeschrittenenkursen sprechen werden.
Sitzung löschen und zerstören
session_start();$_SESSION['name'] = 'jobs';unset($_SESSION['name']);echo $_SESSION['name']; //Eingabeaufforderungsname existiert nicht
Wenn Sie alle Sitzungen löschen möchten, können Sie die Funktion session_destroy verwenden, um die aktuelle Sitzung zu zerstören. session_destroy löscht alle Daten, die session_id ist jedoch weiterhin vorhanden.
session_start();$_SESSION['name'] = 'jobs';$_SESSION['time'] = time();session_destroy();
Es ist erwähnenswert, dass session_destroy Der Wert in der globalen Variablen $_SESSION wird nicht sofort gelöscht. Nur beim nächsten Zugriff ist $_SESSION leer. Wenn Sie also $_SESSION sofort löschen müssen, können Sie die Funktion unset verwenden.
session_start();$_SESSION['name'] = 'jobs';$_SESSION['time'] = time();unset($_SESSION);session_destroy(); var_dump($_SESSION); //Es ist zu diesem Zeitpunkt leer
Wenn Sie gleichzeitig die session_id im Cookie zerstören müssen, die normalerweise verwendet wird, wenn sich der Benutzer abmeldet, müssen Sie auch die setcookie-Methode explizit aufrufen Löschen Sie den Cookie-Wert von session_id.
Sitzung zum Speichern von Benutzeranmeldeinformationen verwenden
Sitzung kann zum Speichern vieler Arten von Daten verwendet werden, sodass sie häufig zum Speichern von Benutzeranmeldeinformationen, Warenkorbdaten usw. verwendet wird. oder Einige temporäre Daten zur vorübergehenden Verwendung usw.
Nachdem sich der Benutzer erfolgreich angemeldet hat, können die Benutzerinformationen normalerweise in der Sitzung gespeichert werden. Im Allgemeinen werden einige wichtige Felder separat gespeichert, und dann werden alle Benutzerinformationen unabhängig gespeichert.
$_SESSION['uid'] = $userinfo['uid'];$_SESSION['userinfo'] = $userinfo;
Im Allgemeinen können Anmeldeinformationen in Sessioin gespeichert werden. Der Unterschied zwischen ihnen besteht darin, dass Sitzungen problemlos auf mehrere Datentypen zugreifen können, während Cookies nur Zeichenfolgentypen unterstützen. Gleichzeitig müssen Cookies für einige Daten mit höherer Sicherheit formatiert und verschlüsselt werden Die Sitzungsspeicherung auf der Serverseite ist sicherer.
header("content-type:text/html; charset=utf-8");
session_start();//Angenommen, der Benutzer meldet sich erfolgreich an und erhält die folgenden Benutzerdaten $userinfo = array(
'uid' => 100,
'name' => 'liu',
'email' => '123456789@qq.com',
'sex' => 'man',
'age' => '23');
/* Benutzerinformationen in Sitzung speichern*/
$_SESSION['uid'] = $userinfo['uid'];
$_SESSION['name'] = $userinfo['name'];
$_SESSION ['userinfo '] = $userinfo;
//* Eine einfache Möglichkeit, Benutzerdaten in Cookies zu speichern*/
$secureKey = 'php';
//Verschlüsselungsschlüssel $ str = serialize($userinfo);
//Benutzerinformationen serialisieren //Vor dem Verschlüsseln von Benutzerinformationen
$str = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5( $secureKey), $str, MCRYPT_MODE_ECB ));
//Nachdem die Benutzerinformationen verschlüsselt wurden//Speichern Sie die verschlüsselten Benutzerdaten im Cookie
setcookie('userinfo', $str) ;
?>
Schließlich werfen wir einen Blick auf den größten Unterschied zwischen Sitzung und Cookie:
Erstens ist Sitzung gleich Sitzung. Die Informationen werden auf dem Server gespeichert und Die Informationen des Clients werden über eine Sitzungs-ID übertragen. Gleichzeitig stellt der Server nach Erhalt der Sitzungs-ID relevante Sitzungsinformationsressourcen basierend auf dieser ID bereit.
Zweitens kombiniert das Cookie alle Informationen mit dem Formular Text wird auf dem Client gespeichert und vom Browser verwaltet und verwaltet
Drittens: Da die Sitzung auf dem Server gespeichert wird, können alle Remote-Benutzer den Inhalt der Sitzungsdatei und des Cookies nicht ändern
ist für den Client Endspeicherung, alle Sitzungen sind viel sicherer als Cookies, und natürlich gibt es viele Vorteile, wie einfache Steuerung, kundendefinierte Speicherung usw. (in der Datenbank gespeichert)...