Heim  >  Artikel  >  Backend-Entwicklung  >  javascript - Wer kann mir sagen, wie PHP Cookies akzeptiert und welche Funktionen damit verbunden sind?

javascript - Wer kann mir sagen, wie PHP Cookies akzeptiert und welche Funktionen damit verbunden sind?

WBOY
WBOYOriginal
2016-12-01 00:56:39888Durchsuche

Ich bin geschäftstüchtig und immer neugierig, was ich tun und lernen kann.

Ich möchte fragen, was mit diesem Cookie los ist.
Ist es so, dass nach der Überprüfung des Benutzernamens und des Passworts der anderen Partei vom Server eine verschlüsselte Zeichenfolge zurückgegeben und auf dem Server gespeichert wird? Datenbank.

Wenn sich der Benutzer in Zukunft anmeldet, ist es nicht erforderlich, die ID und das Passwort zu überprüfen. Es muss lediglich überprüft werden, ob die Zeichenfolge mit der Datenbank korrekt ist. Nach einer Weile wird die Zeichenfolge in der Datenbank gelöscht.

Das sollte das Prinzip sein. Was ich jedoch nicht verstehe, ist, wie dieses Cookie aus dem vorherigen Abschnitt gesendet wurde. Ich kann Aktionen verwenden, um Beiträge zu senden und abzurufen, und ich kann auch Ajax verwenden, um Zahlen zu übergeben. Die URL wird auch zur Übergabe des Werts verwendet.

Was sind die zugehörigen Funktionen von jQuery oder HTML-Code, die im vorherigen Abschnitt Cookies senden?

Welche Funktionen gibt es zum Sammeln von Cookies vom PHP-Server? Können Sie mir bitte ein Schlüsselwort geben, damit ich danach suchen kann, oder mir einfach einige Vorsichtsmaßnahmen mitteilen? Danke.

Antwortinhalt:

Ich bin geschäftstüchtig und immer neugierig, was ich tun und lernen kann.

Ich möchte fragen, was mit diesem Cookie los ist.
Ist es so, dass nach der Überprüfung des Benutzernamens und des Passworts der anderen Partei vom Server eine verschlüsselte Zeichenfolge zurückgegeben und auf dem Server gespeichert wird? Datenbank.

Wenn sich der Benutzer in Zukunft anmeldet, ist es nicht erforderlich, die ID und das Passwort zu überprüfen. Es muss lediglich überprüft werden, ob die Zeichenfolge mit der Datenbank korrekt ist. Nach einer Weile wird die Zeichenfolge in der Datenbank gelöscht.

Das sollte das Prinzip sein. Was ich jedoch nicht verstehe, ist, wie dieses Cookie aus dem vorherigen Abschnitt gesendet wurde. Ich kann Aktionen verwenden, um Beiträge zu senden und abzurufen, und ich kann auch Ajax verwenden, um Zahlen zu übergeben. Die URL wird auch zur Übergabe des Werts verwendet.

Was sind die zugehörigen Funktionen von jQuery oder HTML-Code, die im vorherigen Abschnitt Cookies senden?

Welche Funktionen gibt es zum Sammeln von Cookies vom PHP-Server? Können Sie mir bitte ein Schlüsselwort geben, damit ich danach suchen kann, oder mir einfach einige Vorsichtsmaßnahmen mitteilen? Danke.

Der Server teilt dem Benutzeragenten den Namen, den Wert, den entsprechenden Pfad, die Gültigkeitsdauer usw. des Cookies über den HTTP-Antwortheader mit Set-CookieNachdem der Benutzeragent (normalerweise der Browser) es gespeichert hat, wenn er Daten anfordert das Backend, es Das entsprechende Cookie wird im Anforderungsheader platziert und an den Server gesendet.

Das Frontend kann auch Cookies über JS setzen.

Solange das Cookie gesetzt ist, hängt der Browser das Cookie automatisch an die Anfrage an und Sie müssen es nicht aktiv übermitteln.

Cookies in PHP setzen

Die Funktion zum Setzen von Cookies in PHP ist setcookie (es gibt auch ein setrawcookie, das nicht häufig verwendet wird).

<code class="php">setcookie('hello', 'world', time()+3600, '/test/', 'example.com');</code>

Auf diese Weise wird eine Datei mit dem Namen hello mit dem Wert world festgelegt, der Gültigkeitszeitraum ist die aktuelle Zeit plus 3600 Sekunden (d. h. 1 Stunde), der Domänenname ist example.com und Der Pfad ist /test/ (und stellt nur Gültig unter Pfaden wie http://example.com/test/a.php dar) Cookies.

Spezifische Parameter finden Sie im Dokument http://php.net/manual/zh/func....

Server sendet Cookie

Der Server fügt einen Set-Cookie-Header in den Antwort-HTTP-Header ein:

<code>Set-Cookie: hello=world; Expires=Sun, 13 Nov 2016 11:30:00 GMT; Domain=example.com; Path=/test/</code>

Die Ablaufzeit (Expires) wird in GMT angegeben. Hier gehe ich davon aus, dass ich am 13. November 2016 um 18:30:00 Uhr Pekinger Zeit bin (also am 13. November 2016 um 10:30 Uhr GMT). 00) Der Cookie-Satz ist 1 Stunde lang gültig.

Wenn mehrere Cookies vorhanden sind, gibt es mehrere Set-Cookie-Header.

Weitere Informationen finden Sie unter http://www.cnblogs.com/hdtian... .

Browser sendet Cookie

Der Browser speichert dieses Cookie. Wenn Sie das nächste Mal eine Adresse anfordern, die die Cookie-Bedingungen erfüllt, fügt der Browser einen Cookie-Header in den Anforderungsheader ein:

<code>Cookie: hello=world</code>

Wenn es mehrere Cookies oder nur einen Cookie-Header gibt, verwenden Sie Semikolons und Leerzeichen ; , um die Name-Wert-Paare jedes Cookies zu trennen.

Egal, ob Sie eine AJAX-Anfrage oder eine normale POST- und GET-Anfrage stellen: Solange das Cookie gültig ist, sendet der Browser es an den Server.

PHP empfängt und verarbeitet Cookies

PHP analysiert die Header-Informationen und parst das Cookie in das Array $_COOKIE. Wir können auf den Wert des Cookies mit dem Namen hello wie folgt zugreifen:

<code class="php">$_COOKIE['hello'];</code>

Cookies in JS manipulieren

Der Zugriff auf Cookies in JS ist etwas mühsam, da es keine praktische Schnittstelle zum Lesen und Setzen von Cookies gibt. Wir können Cookies nur über document.cookie manipulieren. Einzelheiten finden Sie unter: https://developer.mozilla.org... .

JS中读取cookie直接用document.cookie,但是得到的确实和上面浏览器发送cookie中的格式类似的字符串,就是用分号和空格隔开的名值对。

比如hello=world; PHPSESSID=web5~toqn2au0krlholat9c2c4aast3这样的。我们需要自己解析。

JS中设置cookie则是和上面服务器发送cookie类似,都要设置各个参数。比如:

<code class="javascript">document.cookie="hello=kitty; expires=Sun, 13 Nov 2016 12:00:00 GMT"</code>

这样就把hello的值改成了kitty,并且把过期时间延长了半个小时。

虽然看起来好像修改了document.cookie整个值,但实际上并不会影响到其他cookie。我们再次访问document.cookie将得到hello=kitty; PHPSESSID=web5~toqn2au0krlholat9c2c4aast3这样的结果。

要删除一个cookie,只要把过期时间设置在当前时间之前就行了。

因为HTTP设计是无状态的,所以就有了cookie来充当HTTP的状态。有了cookie,服务端就知道,你是谁了。phpsetcookie函数,还有$_COOKIE来获取cookiecookie是通过头部字段CookiesSet-Cookie来传递的。所以php也可以使用设置返回头和读取返回头来设置cookie和读取cookie

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