Session

Jeder Aufruf einer Internetseite wird über HTTP einzeln bearbeitet. Wenn ein Nutzer auf den gleichen Webserver zugreift, kann es jedoch von Vorteil sein, bestimmte Dinge zu speichern. Beispielsweise die ausgewählten Produkte in einem Shopsystem. Hierzu stehen einem Cookies und Sessions zur Verfügung.

Cookies

Cookies sind kleine Datenmengen, die man auf dem Rechner des Users speichert, auch für einen längeren Zeitraum. Das kann durch Browsereinstellung verhindert werden.

Session Management

Im superglobalen Feld $_SESSION können Daten auf dem Server gespeichert werden. Diese haben nur während einer Internetsitzung Gültigkeit. Das heißt nach dem Schließen des Browsers werden die Daten gelöscht. Session Management bietet keinen vollständigen Schutz, von daher sollte man keine sensiblen Nutzerdaten dort ablegen.

Session-Management

Eine Session wird explizit begonnen und endet auf 3 Arten:

Durch die Beendigung einer Session werden die Daten im Feld $_SESSION gelöscht.

Die Funktion session_start() wird auf jeder Seite, die zur Session gehört aufgerufen, dadurch wird entweder eine Session begonnen oder eine weiter geführt.
session_start() muss noch vor dem HTML Dokument, also vor dem Doctype aufgerufen werden,

<?php session_start() ?>
  <!Doctype HTML>

 

In dem superglobalen Feld $_SESSION kann man Werte speichern.

$_SESSION["spieler"]

Dann kann man mit isset() überprüfen, ob es das Element schon gibt. Wenn das der Fall ist wird in diesem Beispiel ihr Wert um 1 erhöht. Wenn es noch nicht existiert, startet es mit dem Wert 1.

session_id() Bei jeder Session wird eine session_id auf dem Server hinterlegt, damit eine eindeutige Identifizierung möglich ist.

   if(isset($_SESSION["counter"]))   /* Counter existiert bereits*/
      $_SESSION["counter"] ++;
   else                         /* Counter existiert noch nicht */
      $_SESSION["counter"] = 1;
   echo "Ihr Besuch Nr.: " . $_SESSION["zz"] . "
"; echo "Ihre Session-ID: " . session_id();

Cookies

Wenn Daten über einen längeren Zeitraum aufbewahrt werden sollen, kann man Cookies nutzen. Es sind kleine Dateien auf dem Rechner des Nutzers.

Die Cookies müssen von den Browsereinstellungen akzeptiert werden. Laut Datenschutzverordnung muss der User auf den Gebrauch von Cookies aufmerksam gemacht werden und diese akzeptieren.

Mit der Funktion setcookie() werden Cookies erzeugt. Die ersten 3 Parameter sind: Name, Wert, Abaufdatum.

setcookie() muss am Anfang vor dem HTML notiert werden.

Ein Cookie wird nach Ablaufdatum gelöscht. Die Cookies werden der erzeugenden Domain zugeordnet, damit jede Domain nur ihre eigenen Cookies auf dem Rechner des Benutzers lesen kann.

Wenn auf dem Benutzerrechner Cookies gefunden werden, die zur Domain und Pfad passen, stehen sie im superglobalen Array $_COOKIE zur Verfügung.

Überprüfen ob Cookie gesetzt wurde

sc_besuch.php / download

Auf dieser Seite wird ein Cookie gesetzt und es wird überprüft, ob es der erste Besuch war oder er Cookie schon gesetzt wurde.

Der Code erklärt sich von selbst. Wenn das superglobale Array $_COOKIE["Besuch"] schon gesetzt wurde, wird $neu auf 0 gesetzt andernfalls auf 1.

Dann wird mit setcookie("Besuch",1,time()+86400) gesetzt. Das heißt es wird ein $_COOKIE["Besuch"] mit dem Wert 1 erzeugt und einem Ablaufdatum von einem Tag erzeugt. Der Wert ist an dieser Stelle nicht von Bedeutung. Es geht lediglich darum ein Cookie zu setzen.

Dann wird die Variable $neu abgefragt und je nach Wert ein Satz ausgegeben.

Adresse/ Name speichern

sc_adresse_a.php / download

sc_adresse_b.php / download

Hier soll eine Adresse bestehend aus Vorname und Nachname gespeichert werden, damit der User beim nächsten Besuch der erneute Eintrag erspart bleibt.

Beim ersten Besuch erscheint ein leeres Formular mit vorname und nachname. Der Benutzer gibt seine Daten ein und bestätigt mit Bestellen. Er erhält eine Bestätigung und gleichzeitig werden die Daten in Cookies gespeichert.

Wenn der Besucher die Seite wieder besucht erscheint das Formular, doch dieses mal sind die zuvor gespeicherten Werte in dem Formularfeldern vorbelegt.

sc_adresse_a.php enthält das Formular sowie die Vorbelegung der Formularfelder, sofern die Cookies schon existieren. Das wird mit isset() überprüft.

sc_adresse_b.php ist die Seite an die das Formular gesendet wird. Dort werden die Eingaben in $_COOKIE["vorname"] und $_COOKIE["nachname"] gespeichert und ein Hinweistext ausgegeben.

Um zu Überprüfen, ob es funktioniert, muss man den Browser schließen und wieder öffnen und die Seite erneut aufrufen.

 


Webdesign / PHP / mySQL / Dreamweaver MX Tipps
Copyright © Michael Albers
www.pastorpixel.de