Heim  >  Artikel  >  Backend-Entwicklung  >  Cookies und Sitzungen in PHP

Cookies und Sitzungen in PHP

怪我咯
怪我咯Original
2017-01-16 11:01:562004Durchsuche

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

Einführung in Cookies

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');

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

$name=$_COOKIE["name"};

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

Cookies und Sitzungen in PHPNachdem 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

Die Verwendung einer Sitzung in PHP ist sehr einfach. Führen Sie zunächst die Methode session_start aus, um die Sitzung zu öffnen, und lesen und schreiben Sie dann die Sitzung über die globale Variable $_SESSION.

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

Um einen Sitzungswert zu löschen, können Sie die Unset-Funktion von PHP verwenden. Nach dem Löschen wird er aus der globalen Variablen $_SESSION entfernt und es kann nicht darauf zugegriffen werden.

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) ;

?>

Cookies und Sitzungen in PHP

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)...


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