Heim  >  Artikel  >  Backend-Entwicklung  >  Anweisungen zur Verwendung von Cookies in PHP

Anweisungen zur Verwendung von Cookies in PHP

怪我咯
怪我咯Original
2017-07-05 10:12:541499Durchsuche

Das Setzen und Lesen von Cookies mit PHP ist extrem – wagen wir es zu sagen? - Einfache Dinge. Wir wollen Cookies nicht predigen, aber sie sind wichtig und nützlich. Sie sind die einzigen verfügbaren Werkzeuge zur Lösung bestimmter Probleme.

Um ein Cookie zu erstellen und zu ändern, verwenden Sie die PHP-Funktion setcookie(). Je nachdem, wie viel Kontrolle Sie über das Cookie haben möchten und wer den Wert des Cookies lesen kann, kann setcookie() bis zu sechs Parameter haben.

Der einfachste Weg, ein Cookie zu setzen, ist wie folgt:

<?php
setcookie(&#39;name&#39;, &#39;bret&#39;);
?>

Dann, bevor der Benutzer beendet , wird jede Seite der Website angezeigt, die mit diesem Browser angezeigt wird wird immer eine Variable$name mit dem Wert „bret“ sein und über PHP leicht zugänglich sein. Da seine Lebensdauer nur eine Benutzerverbindung beträgt, wird diese Art von Cookie als Sitzungs--Cookie bezeichnet.

Wenn Sie möchten, dass dieses Cookie bestehen bleibt, nachdem der Benutzer seinen Browser schließt, müssen Sie den dritten Parameter an die Funktion setcookie() übergeben, mit der das Gültigkeitsdatum dieses Cookies festgelegt wird. Da der Hintergrund von PHP vollständig auf Unix-Ideen basiert, muss dieses Ablaufdatum durch die Gesamtzahl der Sekunden seit dem 1. Januar 1970 dargestellt werden. Wenn Sie ein Unix-Programmierer sind, könnte dieser Algorithmus für Sie sinnvoll sein. Aber wenn Sie aus dem Windows- oder Macintosh-Lager kommen, schütteln Sie vielleicht nur den Kopf und seufzen, weil Sie diese seltsamen Unix-Typen nicht verstehen können.

Aber es besteht kein Grund zur Angst. PHP bietet eine sehr nützliche Funktion mktime(). Sie müssen mktime() lediglich die Stunden, Minuten, Sekunden, den Monat, das Datum und das Jahr übergeben, die Sie der Reihe nach darstellen möchten, und mktime() gibt die Gesamtzahl der Sekunden seit dem 1. Januar 1970 zurück. Wenn Sie also das Jahr-2000-Problem simulieren müssen:

<?php
$y2k = mktime(0,0,0,1,1,2000);
setcookie(&#39;name&#39;, &#39;bret&#39;, $y2k);
?>

Jetzt läuft Ihr Cookie im Jahr 2000 ab.

Wenn Sie das Cookie aktualisieren müssen, um einen neuen Wert zu speichern, überschreiben Sie einfach seinen ursprünglichen Wert. Selbst wenn Sie also gerade auf einer vorherigen Seite ein Cookie gesendet haben, können Sie Ihren Namen immer noch in „jeff“ ändern.

<?php
$y2k = mktime(0,0,0,1,1,2000);
setcookie(&#39;name&#39;, &#39;jeff&#39;, $y2k);
?>

Beachten Sie, dass dadurch der Wert der Variablen $name nicht geändert wird. Sein Wert wird beim Laden der Seite ermittelt. Wenn Sie immer beides gleichzeitig ermitteln möchten, können Sie den folgenden Code schreiben:

<?php
$name = &#39;jeff&#39;;
$y2k = mktime(0,0,0,1,1,2000);
setcookie(&#39;name&#39;, $name, $y2k);
?>

Die nächsten beiden Parameter von setcookie() können die Domäne und den Verzeichnispfad des Programms steuern, das das Cookie liest . Die Standardeinstellung ist, dass nur Seiten innerhalb derselben Verzeichnisstruktur wie der Server, der das Cookie gesendet hat und sich auf derselben Ebene oder darunter befinden, seinen Wert lesen können. Dies ist auf Überlegungen zur Netzwerk-Sicherheit zurückzuführen. Wenn Sie jedoch ein Konto mit „www.domain.com“, aber auch „other.domain.com“ haben und das Konto die Verarbeitung von Seiten aus dem ~/myhome-Verzeichnis zulässt, sollten Sie setcookie() wie folgt ändern:

<?php
setcookie(&#39;name&#39;, &#39;jeff&#39;, $y2k, &#39;~/myhome&#39;, &#39;.domain.com&#39;);
?>

Der letzte Parameter von setcookie(), den wir noch nicht verwendet haben, besteht darin, das Cookie so festzulegen, dass es nur an Webserver gesendet wird, die sichere Verbindungen wie SSL implementieren. Um diese Funktion zu nutzen, setzen Sie den sechsten Wert auf 1.

Das Löschen von Cookies ist sehr einfach. Übergeben Sie einfach den Cookie-Namen an setcookie() und PHP löscht es.

<?php
setcookie(&#39;name&#39;);
?>

Abschließend gibt es noch einen weiteren wichtigen Punkt bei der Verwendung von Cookies zu beachten. Aufgrund der Funktionsweise von Cookies mit HTTP müssen Sie alle Cookies senden, bevor Sie Text ausgeben. Andernfalls gibt PHP eine Warnung aus und das Cookie wird nicht gesendet. Daher ist dies die richtige Vorgehensweise:

<?php
setcookie(&#39;name&#39;, &#39;jeff&#39;);
echo "Hello Everyone!";
?>

Die folgende Vorgehensweise ist die falsche:

<?php
$today = mktime(12,0,0,6,25,1999);
echo &#39;Here it is &#39;.date(&#39;g:i:s a, F d, Y&#39;,$today);
echo &#39;&#39;;
echo &#39;In GMT it is &#39;.gmdate(&#39;g:i:s a, F d, Y&#39;,$today);
?>

Das obige ist der detaillierte Inhalt vonAnweisungen zur Verwendung von Cookies in PHP. 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