Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung zur Verwendung von Session-Cookies in PHP und Codeigniter

Detaillierte Erklärung zur Verwendung von Session-Cookies in PHP und Codeigniter

墨辰丷
墨辰丷Original
2018-05-24 10:12:341517Durchsuche

In diesem Artikel wird hauptsächlich die Verwendung von Session-Cookies in PHP und Codeigniter vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

1. Cookies lesen und schreiben

f35d6e602fd7d0f0edfa6f7d103c1b57 Native

setcookie('name','value',time)

Setup fehlgeschlagen, nicht normal in den Browser geschrieben, Test fehlgeschlagen, Grund unbekannt

2cc198a1d5eb0d3eb508d858c9f5cbdbCI-Framework

$this->input->set_cookie("views","test10",1000);
echo $_COOKIE["views"];//此方法获取值时,如果值不存在会报错,当然可以先用isset($_COOKIE["views"])判断一下

5bdf4c78156c7953567bb5a0aef2fc53Von Helfer

$this->load->helper('cookie');//这行放在view也是可以的,随便
set_cookie('views','test10',1000);
echo get_cookie('views');//此方法获取值如果获取不到,会返回空,不会报错

2. Lese- und Schreibsitzung

f35d6e602fd7d0f0edfa6f7d103c1b57 native Sitzung

Start:

<?php
session_start();
?>

Zuweisen:

$_SESSION[&#39;views&#39;] = "test20";

Wert:

echo "Session:". $_SESSION[&#39;views&#39;];

Dauer:

Sitzung. Wenn der Browser geschlossen wird, wird die PHP-Sitzung im Cookie gelöscht und beim nächsten Öffnen wird ein

neu generiert, obwohl der Server die Sitzung weiterhin speichert. Die Ablaufzeit der Sitzung wird in php.ini festgelegt, siehe einen anderen Artikel Sicherheitsüberlegungen zu PHP (Codeigniter)

2cc198a1d5eb0d3eb508d858c9f5cbdbCI-Framework-Sitzung

Start:

$this->load->library(&#39;session&#39;);//load必须在controller完成,当要使用session必须先load赋值:
$this->session->views = "test11";

Wert:

echo "Session:". $_SESSION[&#39;views&#39;];

Dauer:

Der Client hat 2 Stunden Dauer, wenn die Sitzung des Servers gelöscht wird, da die Sitzungs-ID des Clients lautet immer noch gültig, sodass der Server beim erneuten Öffnen eine Sitzung mit derselben Sitzungs-ID wie die des Clients erstellt. Natürlich spielt es keine Rolle, ob eine neue oder eine alte ID erstellt wird, da nur die ID dieselbe ist Es gibt keine Daten

5bdf4c78156c7953567bb5a0aef2fc53 Unterschied

> other heißt ci_session

> Es kann nur einer gestartet werden, nicht beide

> Die Werte sind gleich

> , und Sie sollten die native Sitzung vollständig aufgeben

> Auf die native PHP-Sitzung kann beiläufig zugegriffen werden, und die ci_session ist httponly, was bedeutet, dass die native Sitzung möglicherweise über xxs angegriffen wird und das Cookie über abgerufen wird js

23889872c2e8594e0f446a471a78ec4cAusnahmen

Es gibt eine Situation wie diese:

Wenn dies geschieht, existiert ci_session bereits, da dieses ci_ persistent ist

//session_start();//没有启动原生的session
//$this->load->library('session');//没有启动ci的session
$_SESSION['views'] = "test23";//直接用原生的方式进行赋值
echo "Session:". $_SESSION[&#39;views&#39;];//可以正常取值出来"test23"

Beim Betrachten des Cookies wird festgestellt, dass keine native Sitzung vorhanden ist , und es kann sich nur um eine CI-Sitzung handeln. Suchen Sie dann diese Datei in der Sitzung des Servers und stellen Sie fest, dass der Wert nicht eingeschrieben ist. Wenn session_start() deklariert ist, wechselt es in den nativen Modus und erstellt eine PHP-Sitzung neu Der Wert wird geschrieben.

Wenn nichts vorhanden ist. Wenn Sie den Wert direkt übernehmen, wird ein Fehler gemeldet, da Sie ihn nicht laden müssen Daher wird ein Fehler gemeldet, der beim Zuweisen von Werten auf native Weise dem Starten der Sitzung entspricht. Er verfügt jedoch nicht über die Berechtigung zum Schreiben. Dies kann als a bezeichnet werden Fehler

43ad812d3a971134e40facaca816c822So funktioniert die Sitzung

Die Funktionsweise von Cookies ist relativ einfach zu verstehen, das heißt, sie ist in die geschrieben Es wird ein Benutzer-Cookie gespeichert und alles, was geschrieben wird, wird ausgelesen. Solange es sich um ein Cookie auf dieser Seite handelt, kann es per Schlüsselwert ausgelesen werden.

Der Wert der Sitzung wird auf dem Server gespeichert, aber woher wissen Sie, zu welchem ​​Benutzer dieser Wert gehört? Durch die Speicherung des Sitzungsdateinamens im Benutzer-Cookie wird der gespeicherte Wert in einer gleichnamigen Datei auf dem Server abgelegt. Beim Diebstahl von Cookies handelt es sich um den Diebstahl wichtiger Informationen, die auf dem Server gespeichert werden. Wenn sie jedoch gestohlen werden, ist dies der Fall. Daher ist der im Cookie gespeicherte Sitzungsschlüssel nicht vertrauenswürdig und es sollte eine Authentifizierung durchgeführt werden.

Beachten Sie, dass beim Schreiben der Sitzung der Sitzungsschlüssel automatisch in das Cookie des Benutzers geschrieben wird. Diese Dauer sollte in der PHP-Konfiguration in .ini festgelegt werden .
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich sein wird.


Verwandte Empfehlungen:

PHP+MySQL-Transaktionsverarbeitungsproblemlösung mit hoher Parallelitätssperrung

PHPDie Verwendung von file_get_contents zum Senden der HTTP-Anfragefunktion ist einfach

Monkey King-Algorithmus (Monkey Chooses the King), implementiert durch PHP

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung zur Verwendung von Session-Cookies in PHP und Codeigniter. 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