Top
PHP Tutorial – Schritt 19: Sessions – RonnyDee´s Blog
fade
2546
post-template-default,single,single-post,postid-2546,single-format-standard,eltd-core-1.1.1,flow child-child-ver-1.0.0,flow-ver-1.3.7,eltd-smooth-scroll,eltd-smooth-page-transitions,ajax,eltd-blog-installed,page-template-blog-standard,eltd-header-standard,eltd-fixed-on-scroll,eltd-default-mobile-header,eltd-sticky-up-mobile-header,eltd-dropdown-default,wpb-js-composer js-comp-ver-5.2.1,vc_responsive

PHP Tutorial – Schritt 19: Sessions

Eine weiterer große Stärke von PHP sind so genannte Sessions. Sessions werden während einer Browsersitzung erstellt und sind so zusagen für jeden Besucher einmalig. Eine Session ist so lange gültig, bis das Browserfenster geschlossen wird. Bei Multi-Tab Browsern (also jene Browser wo du mehrere Fenster aufmachen kannst) sind sie solange gültig, bis du die Hauptinstanz des Browser schließt.

|

Manche Browser erlauben noch zwei zusätzliche Funktionen an: „Private surfen“ und „Neue Browsersession starten“ – in beiden Fällen werden die Sessionparameter nicht an diese neuen Browserfenster übergeben, sprich es sind neue SessionIDs vorhanden.

|

Mit so einer SessionID kann man nun jede Variable verknüpfen und abspeichern. Dies ist in der Regel bei LoginSystemen der Fall… man loggt sich einmal ein und ist dann so lange verifiziert bis die Session ihre Gültigkeit verliert oder man die Browserinstanz schließt. Ausnahmen kann man via Cookies definieren, das heißt die Logininformationen werden auf dem jeweiligen PC lokal abgespeichert und beim Öffnen des Browsers geladen (benutzt z.B. Google oder Amazon).

|

PHP muss ab jetzt auf deinem Webserver ausgeführt werden. Aus Sicherheitsgründen werden PHP Sessions in keinen Sandboxen erlaubt. Alle Testdateien die du siehst, liegen deshalb auch auf meinem Server.

|

Vorbereitung

Als erstes Beginnen wir mit den Vorbereitungen zu einer PHP Datei mit Sessions. Dazu gibt es bereits die erste wichtige Regel (!): Der Session Start Parameter muss am Anfang der jeweiligen PHP Datei gesetzt sein. Was bedeutet das?

Jede PHP Datei mit Code beginnt ja so:

Möchten wir in dieser Datei mit Sessions arbeiten, so sieht das so aus:

Noch mal zur Erinnerung: Der Code „session_start();“ MUSS am Anfang einer PHP Datei verankert werden. Es darf kein anderer Code wie HTML, JavaScript oder PHP vorher ausgegeben werden. Ansonsten kommt es zu Fehlern und PHP Sessions können nicht benutzt werden.

|

Aufrufen und adressieren von PHP Session Variablen

Wenn wir soweit sind, dann können wir Session Variablen erzeugen und auslesen. Das ist mit unseren bisherigen Kenntnissen denkbar einfach:

So, bevor wir das aber auch testen, müssen wir noch einen neuen Befehl erlernen:

|

Prüfen ob Variable gesetzt ist

Bei Sessions ist es immer hilfreich, wenn man eine Prüfung durchführt, bevor man seinen Code ausführt. Denn so vermeidet man Eingabefehler am Anfang:

Mittels dem Befehl „if(!isset(Variable)“ prüfst du, ob eine Variable existiert. Durch das Rufzeichen (!) am Anfang gibst du PHP zu verstehen, dass der nachfolgende Code nur ausgeführt wird, wenn die Variable nicht existiert. Lässt du diesen weg, so wird der Code ausgeführt, sofern die Variable existiert.

|

Beispiel

Damit du das auch selbst prüfen kannst und ich dir keinen Blödsinn erzähle zeige ich dir den Code und den Link dazu:

Du kannst dir dieses Beispiel auch live unter diesem Link ansehen

|

Session löschen

Wie Anfangs erwähnt sind Session eine Browsersitzung lang gültig. Man kann sie aber auch zeitgesteuert oder funktionsgesteuert löschen. Dabei hast du die Qual der Wahl alle deine Sessions oder nur bestimmte zu löschen:

|

Alle Sessions löschen

Um alle Sessions zu löschen ist einfach folgender Code in einer (mit „session_start()“ gestarteten) PHP Datei zu verankern:

|

Einzelne Session löschen

Um eine einzelne bzw. bestimmte Session zu löschen, verwendet man den Befehl „unset()“. Dabei wird einfach der Name der Session mitgegeben. Fertig. Wichtig dabei wiederum ist: Dies muss in einer mit „session_start()“ gestarteten PHP Datei passieren!

So, grundsätzlich war´s das auch bereits was man über Sessions wissen sollte. Sehen wir uns das doch mal in einem Beispiel genauer an:

|

Übungsbeispiel

In diesem Beispiel wollen wir ganz einfach die erste Zeit in dem wir eine Datei öffnen ermitteln und anzeigen, wie lange diese Datei bereits offen ist (Refresh derselben Seite wird manuell ausgeführt). Nach 60 Sekunden soll die Session gelöscht werden und das Ganze beginnt von vorne:

Du kannst dir dieses Beispiel auch live unter diesem Link ansehen

|

Ich würde dir jetzt auch empfehlen, diesen Link in einem zweiten Browsertab desselben Browsers bzw. auch in einem „Privat surfen“ Browserfenster zu öffnen. Somit wirst du sehen, wo Sessions aktiv sind.

|

Eine perfekte Ergänzung zu Sessions sind Cookies. Die sehen wir uns im nächsten Beitrag genauer an.

 

|

photo credit: rf68 via photopin cc

No Comments

Post a Comment