PHP-Sitzung und PHP-Cookies mit Beispiel

Was ist Cookie?

Ein Cookie ist eine kleine Datei mit einer maximalen Größe von 4 KB, die der Webserver auf dem Client-Computer speichert.

Sobald ein Cookie gesetzt wurde, geben alle folgenden Seitenanfragen den Cookie-Namen und -Wert zurück.

Ein Cookie kann nur von der Domain gelesen werden, von der es ausgegeben wurde. Zum Beispiel ein Cookie, das mithilfe der Domain gesetzt wird www.guru99.com kann nicht aus der Domäne gelesen werden karriere.guru99.com.

Die meisten Websites im Internet enthalten Elemente aus anderen Bereichen, beispielsweise Werbung. Die Domänen, die diese Elemente bereitstellen, können auch ihre eigenen Cookies setzen. Diese Cookies werden als Drittanbieter-Cookies bezeichnet.

Ein von einem Benutzer erstelltes Cookie kann nur für ihn sichtbar sein. Andere Benutzer können seinen Wert nicht sehen.

Die meisten Webbrowser verfügen über Optionen zum Deaktivieren von Cookies, Cookies von Drittanbietern oder beidem.

Wenn dies der Fall ist, antwortet PHP mit der Übergabe des Cookie-Tokens in der URL.

Das unten gezeigte Diagramm veranschaulicht, wie Cookies funktionieren.

Was ist Cookie?

Hier

1) Ein Benutzer fordert eine Seite an, die Cookies speichert

2) Der Server setzt das Cookie auf dem Computer des Benutzers

3) Andere Seitenanfragen des Benutzers geben den Cookie-Namen und -Wert zurück

Warum und wann werden Cookies verwendet?

  • HTTP ist ein zustandsloses Protokoll. Cookies ermöglichen es uns, den Status der Anwendung mithilfe kleiner Dateien zu verfolgen, die auf dem Computer des Benutzers gespeichert werden. Der Pfad, in dem die Cookies gespeichert werden, hängt vom Browser ab. Internet Explorer speichert sie normalerweise im Ordner Temporal Internet Files.
  • Das Nutzererlebnis personalisieren – das gelingt allowing Benutzer können ihre Präferenzen auswählen. Die nachfolgend angeforderten Seiten werden basierend auf den in den Cookies festgelegten Präferenzen personalisiert.
  • Verfolgung der von einem Benutzer besuchten Seiten

Cookies erstellen

Schauen wir uns nun die grundlegende Syntax an, die zum Erstellen eines Cookies verwendet wird.

<?php

setcookie(cookie_name, cookie_value, [expiry_time], [cookie_path], [domain], [secure], [httponly]);

?>

HIER,

  • PHP „setcookie“ ist das PHP-Funktion Wird zum Erstellen des Cookies verwendet.
  • „cookie_name“ ist der Name des Cookies, den der Server verwendet, wenn er seinen Wert aus der Array-Variablen $_COOKIE abruft. Es ist obligatorisch.
  • „cookie_value“ ist der Wert des Cookies und sein obligatorischer Wert
  • „[expiry_time]“ ist optional; Es kann verwendet werden, um die Ablaufzeit für das Cookie festzulegen, z. B. 1 Stunde. Die Zeit wird mithilfe der PHP-Funktionen time() plus oder minus einer Anzahl von Sekunden größer als 0 eingestellt, z. B. time() + 3600 für 1 Stunde.
  • „[cookie_path]“ ist optional; Es kann verwendet werden, um den Cookie-Pfad auf dem Server festzulegen. Der Schrägstrich „/“ bedeutet, dass das Cookie auf der gesamten Domain verfügbar gemacht wird. Unterverzeichnisse beschränken den Cookie-Zugriff auf die Subdomain.
  • „[Domäne]“ ist optional und kann zum Definieren der Cookie-Zugriffshierarchie verwendet werden, d. h www.cookiedomain.com bedeutet gesamte Domäne während www.sub.cookiedomain.com beschränkt den Cookie-Zugriff auf www.sub.cookiedomain.com und seine Subdomains. Beachten Sie, dass es möglich ist, eine Subdomain einer Subdomain zu haben, solange die Gesamtzeichenzahl 253 Zeichen nicht überschreitet.
  • „[secure]“ ist optional, der Standardwert ist false. Es wird verwendet, um zu bestimmen, ob das Cookie über https gesendet wird, wenn es auf „true“ gesetzt ist, oder über http, wenn es auf „false“ gesetzt ist.
  • „[Httponly]“ ist optional. Wenn es auf „true“ gesetzt ist, werden nur clientseitige Skriptsprachen, d. h JavaScript kann nicht darauf zugreifen.

Hinweis: Die PHP-Set-Cookie-Funktion muss vor dem HTML-Öffnungs-Tag ausgeführt werden.

Schauen wir uns nun ein Beispiel an, das Cookies verwendet.

Wir erstellen ein Basisprogramm, das es uns ermöglicht, den Benutzernamen in einem Cookie zu speichern, das nach zehn Sekunden abläuft.

Der folgende Code zeigt die Implementierung des obigen Beispiels „cookies.php“.

<?php
     setcookie("user_name", "Guru99", time()+ 60,'/'); // expires after 60 seconds
     echo 'the cookie has been set for 60 seconds';
?>

Ausgang:

the cookie has been set for 60 seconds

Abrufen des Cookie-Werts

Erstellen Sie eine weitere Datei mit dem Namen „cookies_read.php“ mit folgendem Inhalt:wing Code.

<?php
     print_r($_COOKIE);    //output the contents of the cookie array variable 
?>

Ausgang:

Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )

Hinweis: $_COOKIE ist eine in PHP integrierte superglobale Variable.

Es enthält die Namen und Werte aller gesetzten Cookies.

Die Anzahl der Werte, die die

Das $_COOKIE-Array kann enthalten, abhängig von der in php.ini festgelegten Speichergröße.

Der Standardwert ist 1 GB.

Testen unserer Anwendung.

Nehmen wir an, Sie haben Ihre PHP-Dateien im Ordner phptus gespeichert.

  • Schritt 1 – Öffnen Sie Ihren Webbrowser und geben Sie die URL ein http://localhost/phptuts/cookies_read.php

Abrufen des Cookie-Werts

Hinweis: Es wurde nur ein leeres Array angezeigt

  • Schritt 2 – Navigieren Sie zur URL http://localhost/phptuts/cookies.php

Abrufen des Cookie-Werts

  • Schritt 3 – Wechseln Sie zurück zur ersten Registerkarte und klicken Sie dann auf die Schaltfläche „Aktualisieren“.

Abrufen des Cookie-Werts

Warten Sie eine Minute und klicken Sie dann erneut auf die Schaltfläche „Aktualisieren“. Welche Ergebnisse haben Sie erzielt?

Cookies löschen

  • Wenn Sie ein Cookie vor seiner Ablaufzeit vernichten möchten, stellen Sie die Ablaufzeit auf einen bereits verstrichenen Zeitpunkt ein.
  • Erstellen Sie eine neue Datei mit dem Namen cookie_destroy.php mit dem folgendenwing Code
<?php

 setcookie("user_name", "Guru99", time() - 360,'/');

?>
  • Wiederholen Sie die Schritte 1 bis 3 aus dem obigen Abschnitt zum Abrufen von Cookie-Werten.
  • Öffnen Sie die URL http://localhost/phptuts/cookie_destroy.php
  • Wechseln Sie zur URL http://localhost/phptuts/cookies_read.php Welche Ergebnisse werden angezeigt?

Was ist eine Sitzung?

  • Eine Sitzung ist eine globale Variable, die auf dem Server gespeichert ist.
  • Jeder Sitzung wird eine eindeutige ID zugewiesen, die zum Abrufen gespeicherter Werte verwendet wird.
  • Bei jeder Erstellung einer Sitzung wird ein Cookie mit der eindeutigen Sitzungs-ID auf dem Computer des Benutzers gespeichert und bei jeder Anfrage an den Server zurückgegeben. Wenn der Client-Browser keine Cookies unterstützt, wird die eindeutige PHP-Sitzungs-ID in der URL angezeigt
  • Im Vergleich zu Cookies können Sitzungen relativ große Datenmengen speichern.
  • Die Sitzungswerte werden beim Schließen des Browsers automatisch gelöscht. Wenn Sie die Werte dauerhaft speichern möchten, sollten Sie diese in der Datenbank speichern.
  • Genau wie die Array-Variable $_COOKIE werden Sitzungsvariablen in der Array-Variable $_SESSION gespeichert. Genau wie bei Cookies muss die Sitzung vor allen HTML-Tags gestartet werden.

Warum und wann sollten Sitzungen verwendet werden?

  • Sie möchten wichtige Informationen wie die Benutzer-ID sicherer auf dem Server speichern, damit böswillige Benutzer sie nicht manipulieren können.
  • Sie möchten Werte von einer Seite an eine andere übergeben.
  • Sie möchten die Alternative zu Cookies in Browsern, die keine Cookies unterstützen.
  • Sie möchten globale Variablen effizienter und sicherer speichern als sie in der URL zu übergeben
  • Sie entwickeln eine Anwendung, beispielsweise einen Warenkorb, der Informationen mit einer Kapazität von mehr als 4 KB vorübergehend speichern muss.

Erstellen einer Sitzung

Um eine Sitzung zu erstellen, müssen Sie zunächst die PHP-Funktion session_start aufrufen und dann Ihre Werte in der Array-Variablen $_SESSION speichern.

Nehmen wir an, wir möchten wissen, wie oft eine Seite geladen wurde. Dazu können wir eine Sitzung verwenden.

Der folgende Code zeigt, wie Werte aus Sitzungen erstellt und abgerufen werden

<?php

session_start(); //start the PHP_session function 

if(isset($_SESSION['page_count']))
{
     $_SESSION['page_count'] += 1;
}
else
{
     $_SESSION['page_count'] = 1;
}
 echo 'You are visitor number ' . $_SESSION['page_count'];

?>

Ausgang:

You are visitor number 1

Sitzungsvariablen zerstören

Die Funktion session_destroy() wird verwendet, um die gesamten PHP-Sitzungsvariablen zu zerstören.

Wenn Sie nur ein einzelnes Sitzungselement zerstören möchten, verwenden Sie die Funktion unset().

Der folgende Code veranschaulicht die Verwendung beider Methoden.

<?php

 session_destroy(); //destroy entire session 

?>
<?php

unset($_SESSION['product']); //destroy product session item 

?>

Session_destroy entfernt alle Sitzungsdaten, einschließlich der mit der Sitzung verbundenen Cookies.

Unset gibt nur die einzelnen Sitzungsvariablen frei.

Andere Daten bleiben erhalten.

Zusammenfassung

  • Cookies sind kleine Dateien, die auf dem Computer des Benutzers gespeichert werden
  • Cookies können nur von der ausstellenden Domain gelesen werden
  • Cookies können eine Ablaufzeit haben. Wenn diese nicht festgelegt ist, verfällt das Cookie, wenn der Browser geschlossen wird
  • Sitzungen sind wie globale Variablen, die auf dem Server gespeichert sind
  • Jede Sitzung erhält eine eindeutige Identifikations-ID, die zum Verfolgen der Variablen für einen Benutzer verwendet wird.
  • Sowohl Cookies als auch Sitzungen müssen gestartet werden, bevor HTML-Tags an den Browser gesendet werden.