0251 / 590 837 15
info@a-coding-project.de

Sessions mit PHP nutzen

Eine Session ist in PHP der Prozess vom Start des PHP-Skripts bis zu dessen Beendigung. Alternativ kann eine Session explizit gestartet und beendet werden, wodurch eine Session mehrere Seitenöffnungen beinhalten kann. Der Sinn von Sessions ist zu verhindern, dass beim Wiederöffnen alle bisherigen Informationen verloren gehen.

Sessions starten

Eine Session wird innerhalb von PHP durch seine Session-ID. identifiziert, z.B.:

82b2420df9a8fdaa65b811fc3050c26f

Dies ist ein Zufallswert, den PHP beim Neustart einer Seite bildet. Die Session-ID kann angezeigt bzw. weiter genutzt werden. Um eine Session zu explizit zu starten, ruft man einfach session_start() auf. Beispiel:

<?php
session_start();
echo 'Session-ID: '.session_id();
?>

Die Funktion session_start() muss dabei im PHP-Code an einer Position stehen, bevor Header-Informationen gesendet werden, da die Session-ID im Normalfall in einem Cookie gespeichert wird um so automatisch beim nächsten Seitenaufruf wieder vorhanden zu sein. PHP ließt bei jeden Seitenaufruf die Cookies aus und schaut ob Sessioninformationen vorhanden sind. Ist dies der Fall, wird beim Aufruf von session_start() automatisch wieder alle Daten geladen, die in der letzten Session des Besuchers gespeichert wurden.
Um auf Nummer sicher zu gehen, für den Fall, dass Cookies beim Besucher deaktiviert sind, kann die Session-ID auch Manuell z.B. via Link oder Formular übergeben werden. Beispiel:

<a href="seite2.php?<?php echo strip_tags (SID)?>">
 weiter zu Seite 2
</a>

Variablen speichern

Um Variablen auf beim nächsten Seitenaufruf weiter verwenden zu können, übergibt man diese an die Session. Hierzu notiert man einfach $_SE SSI ON['variablenname'] und übergibt dieser den jeweiligen Wert. Beispiel:

<?php
session_start();
if(isset($_SESSION['a'])){$_SESSION['a']++;}
else{$_SESSION['a'] = 1;}
?>
Sie rufen die Seite zum <?=$_SESSION['a'];?> Mal auf.

Je nach PHP-Einstellungen kann auch direkt mit der Variablen gearbeitet werden (im Beispiel wäre das dann $a). Darüber hinaus, lassen sich Variablen auch explizit als Sessionvariablen registrieren:

<?php
if(!session_is_registered('a'))
{
 session_register('a');
 $a = 1;
}
else { $a++; }
?>
Sie rufen die Seite zum <?=$a;?> Mal auf.

... und wieder entfernen:

<?php
if(!session_is_registered('a')){ session_unregister('a'); }
?>