kulturbanause Blog

Responsive Design, WordPress, Konzeption, HTML, CSS, JS & UX/UI …

PHP Session mit Timeout-Funktion

Mit Hilfe von PHP Sessions lassen sich Informationen auf einer Website für eine gewisse Zeit festhalten. Diese Daten werden entweder in einem Cookie gespeichert oder in der URL der Website übermittelt. Wann eine solche Session abläuft und die Daten wieder gelöscht werden ist abhängig von den Servereinstellungen der Website. Wenn ihr jedoch selbst bestimmen möchtet, wann eine Session in eurem Webprojekt abläuft, könnt ihr das mit einer Timeout-Funktion lösen.

Workshops und Seminare von kulturbanause

Visual Prototyping, Responsive Design, CSS Grid & Flexbox, WordPress, Adobe XD, HTML & CSS Grundlagen, Website-Optimierung …

Jetzt Frühbucher-Rabatte sichern!

Eine Session starten und löschen (zerstören)

Eine Session startet ihr mit dem Befehl session_start(). Nachfolgend notierte Informationen werden nun in der Session gespeichert und können auch beim Neuladen der Seite oder beim Wechsel auf eine andere Seite aufgerufen werden.

session_start();

Mit dem Befehl session_destroy() löscht bzw. zerstört ihr die Session.

session_destroy();

30 Minuten Timeout zu einer PHP Session hinzufügen

Wenn ihr möchtet, dass eine Session nach einer bestimmten Zeit der Inaktivität des Besuchers gelöscht wird, könnt ihr sie mit einer Timout-Funktion verknüpfen. Gebt hierzu nach dem Start der Session eine $session_timeout Variable an. Dieser Variable übergebt ihr den Zeitwert des gewünschten »Timeouts« in Sekunden. Das folgende Beispiel nutzt 1800 Sekunden für einen Timeout nach 30 Minuten.

Anschließend müsst ihr abfragen, ob der letzte Besuch des Benutzers bereits in einer Session-Variablen ($_SESSION['last_visit']) gespeichert ist. Wenn das nicht der Fall sein sollte, setzt ihr die Variable und übergebt ihr die aktuelle Zeit mit der PHP-Funktion time(). Anschließend prüft ihr, ob der letzte Besuch länger her ist als eure angegebene Timeout-Zeit. Wenn das der Fall ist, löscht ihr die Session wieder. Anschließend übergebt ihr der Session-Variablen ($_SESSION['last_visit']) die aktuelle Zeit erneut.

session_start();
// Zeit bis zum »timeout« in Sekunden
$session_timeout = 1800; // 1800 Sek./60 Sek. = 30 Minuten
if (!isset($_SESSION['last_visit'])) {
  $_SESSION['last_visit'] = time();
  // Aktion der Session wird ausgeführt
}
if((time() - $_SESSION['last_visit']) > $session_timeout) {
  session_destroy();
  // Aktion der Session wird erneut ausgeführt
}
$_SESSION['last_visit'] = time();

Anwendungsbeispiel Besucherzähler

Eine Session mit einer Timeout-Funktion zu verknüpfen bietet sich unter anderem bei der Verwendung von Trackingpixeln auf einer Website an. Ist ein Besucher länger als eine gewisse Zeit inaktiv wird sein Besuch neu gezählt. Bewegt er sich von Unterseite zu Unterseite wird seine letzte Aktivität gespeichert und kein erneuter Zählpixel abgeschossen.

Links/Quellen

Jetzt bist du gefragt!

Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Du kannst diesen Beitrag natürlich auch weiterempfehlen. Wir sind dir für jede Unterstützung dankbar!

Das könnte dich auch interessieren

Kommentar verfassen

Dieser Blog lebt vom Feedback der Besucher! Also los, mach mit!
Bitte habe Verständnis dafür, dass Kommentare die mit dem Inhalt dieses Beitrags nichts zu tun haben, gelöscht werden.