Heim  >  Artikel  >  Backend-Entwicklung  >  Wie betreibt PHP Cookies?

Wie betreibt PHP Cookies?

青灯夜游
青灯夜游nach vorne
2019-11-29 14:21:232449Durchsuche

Wie betreibt PHP Cookies?

Cookies sind Textdateien, die auf dem Computer des Kunden gespeichert und zu Nachverfolgungszwecken aufbewahrt werden. PHP unterstützt transparent HTTP-Cookies.

Die Identifizierung wiederkehrender Benutzer umfasst drei Schritte

 ● Das Serverskript sendet eine Reihe von Cookies an den Browser. Wie Alter usw.

● Der Browser speichert diese Informationen lokal auf Ihrem Computer für die zukünftige Verwendung.

● Wenn der Browser das nächste Mal eine Anfrage an den Webserver sendet, sendet er diese Cookie-Informationen an den Server. Der Server verwendet diese Informationen, um den Benutzer zu identifizieren.

In diesem Kapitel erfahren Sie, wie Sie Cookies setzen, auf sie zugreifen und sie löschen.

Anatomie eines Cookies

Cookies werden normalerweise in HTTP-Headern gesetzt (obwohl JavaScript Cookies auch direkt im Browser setzen kann). Ein PHP-Skript, das ein Cookie setzt, sendet möglicherweise einen Header, der wie folgt aussieht (von Browser F12, Netzwerk gesehen):

HTTP/1.1 200 OK
Date: Fri, 04 Feb 2000 21:03:38 GMT
Server: Apache/1.3.9 (UNIX) PHP/4.0b3
Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; 
                 path=/; domain=jc2182.com
Connection: close
Content-Type: text/html

Wie Sie sehen können, enthält der Set-Cookie-Header Name-Wert-Paare, GMT-Datum und Pfad und Domäne. Namen und Werte werden URL-codiert. Das Feld „Ablauf“ ist die Anweisung des Browsers, das Cookie nach einer bestimmten Zeit und einem bestimmten Datum zu löschen. Wenn der Browser für die Speicherung von Cookies konfiguriert ist, werden diese Informationen bis zum Ablaufdatum gespeichert. Wenn der Benutzer den Browser auf eine Seite verweist, die mit dem Pfad und der Domäne des Cookies übereinstimmt, sendet er das Cookie erneut an den Server. Der Header des Browsers könnte so aussehen:

GET / HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc)
Host: zink.demon.co.uk:1126
Accept: image/gif, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Cookie: name=xyz

Das PHP-Skript kann dann auf die Umgebungsvariable $_COOKIE zugreifen, die alle Cookie-Namen und -Werte enthält.

Cookies mit PHP setzen

PHP bietet die Funktion setcookie() zum Setzen von Cookies. Diese Funktion benötigt bis zu sechs Parameter und sollte vor dem -Tag aufgerufen werden. Diese Funktion muss für jeden Cookie-Satz einzeln aufgerufen werden.

setcookie(name, value, expire, path, domain, security);

Hier sind die Details aller Parameter

 ●Name – Legen Sie den Namen des Cookies fest.

 ● Wert – Legt den Wert der benannten Variablen fest und ist das, was Sie tatsächlich speichern möchten.

● Ablaufdatum – Dies gibt die Zeit in der Zukunft (in Sekunden) seit 00:00:00 GMT am 1. Januar 1970 an. Nach dieser Zeit ist das Cookie nicht mehr zugänglich. Wenn dieser Parameter nicht gesetzt ist, läuft das Cookie automatisch ab, wenn der Webbrowser geschlossen wird.

 ● Pfad – gibt das Verzeichnis an, in dem das Cookie gültig ist. Ein einzelner Schrägstrich ermöglicht, dass das Cookie für alle Verzeichnisse gültig ist.

 domain – Dies kann zur Angabe von Domainnamen in sehr großen Domains verwendet werden und muss mindestens zwei Gültigkeitszeiträume enthalten. Alle Cookies sind nur für den Host und die Domäne gültig, auf der sie erstellt wurden.

 ● Sicherheit – Kann auf 1 gesetzt werden, um anzugeben, dass das Cookie nur über den sicheren Transport mit HTTPS gesendet werden soll, andernfalls auf 0, was bedeutet, dass das Cookie über normales HTTP gesendet werden kann.

Im folgenden Beispiel werden zwei Cookies namens und Alter erstellt. Diese Cookies verfallen nach einer Stunde.

<?php
   setcookie("name", "John Watkin", time()+3600, "/","", 0);
   setcookie("age", "36", time()+3600, "/", "",  0);
?>
<html>
   
   <head>
      <title>用PHP设置Cookies</title>
   </head>
   
   <body>
      <?php echo "设置 Cookies"?>
   </body>
   
</html>

Tipp: Die Funktion time() gibt den aktuellen Zeitstempel zurück, also die Anzahl der Sekunden von 0:00:00 am 1. Januar 1970 bis zum Zeitpunkt der Ausführung des Skripts.

Öffnen Sie den Browser, um auf das Skript zuzugreifen, drücken Sie dann F12, um den Entwicklermodus zu öffnen, wählen Sie die Registerkarte „Netzwerk“ und dann „Kopfzeilen“. Sie können das folgende Bild sehen:

Wie betreibt PHP Cookies?

Zugriff auf Cookies mit PHP

PHP bietet viele Möglichkeiten, auf Cookies zuzugreifen. Am einfachsten ist es, die Variable $_COOKIE zu verwenden. Im folgenden Beispiel wird auf alle im obigen Beispiel gesetzten Cookies zugegriffen.

<html>
   
   <head>
      <title>用PHP访问cookie</title>
   </head>
   
   <body>
      
      <?php
         echo $_COOKIE["name"]. "<br />";
         
         echo $_COOKIE["age"] . "<br />";
  
      ?>
      
   </body>
</html>

Sie können die Funktion isset() verwenden, um zu überprüfen, ob das Cookie gesetzt ist. Wenn gesetzt, dann Ausgabe.

<html>
   
   <head>
      <title>用PHP访问cookie</title>
   </head>
   
   <body>
      
      <?php
         if(isset($_COOKIE["name"]))
                echo $_COOKIE["name"]. "<br />";
         if(isset($_COOKIE["age"]))
                echo $_COOKIE["age"] . "<br />";
  
      ?>
      
   </body>
</html>

Cookies mit PHP löschen

Um ein Cookie zu löschen, sollten Sie offiziell einfach setcookie() mit dem Namensparameter aufrufen [d. h. Sie möchten diesen Namen löschen , auf null setzen], aber das funktioniert nicht immer und man sollte sich nicht darauf verlassen. Am sichersten ist es, ein abgelaufenes Datum festzulegen

/ Die vergangene Zeit auf 60 Sekunden vor der aktuellen Zeit zu setzen/

<?php
   /* 设置过去时间为当前时间的之前的60秒 */
   setcookie( "name", "", time()- 60, "/","", 0);
   setcookie( "age", "", time()- 60, "/","", 0);
?>
<html>
   
   <head>
      <title>用PHP删除cookie</title>
   </head>
   
   <body>
      <?php echo "删除cookie" ?>
   </body>
   
</html>

Empfohlenes Lernen: PHP-Tutorial

Das obige ist der detaillierte Inhalt vonWie betreibt PHP Cookies?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Umgang mit Beträgen in PHPNächster Artikel:Umgang mit Beträgen in PHP