| Session ID in PHP |
| Freitag, den 10. Oktober 2008 um 22:11 Uhr | |
Session ID in PHP
Bisher haben wir Variablen entweder über ein Formular über die POST Methode geschickt oder Variablen an die URL gehängt. Diese waren dann natürlich in der URL sichtbar! Es macht natürlich keinen Sinn Benutzerdaten inkl. Passwort über GET auf eine andere Seite zu übertragen, wenn diese Daten in der URL sichtbar sind.
Die Lösung um Benutzer auf einer Homepage seitenübergreifend identifizieren zu können, heißt Session ID.
So bald ein User die Homepage betritt bekommt er eine eindeutige Session ID. Wann er diese Session ID erhält, kann mal beliebig definieren (vor od. nach erfolgreichem einloggen). Diese eindeutige Session ID begleitet den User über die gesamten Seite (Links) dieser Domäne. Die Session ID kann über verschieden Methoden auf eine andere Seite mitgegeben werden. Meisten wird Sie jedoch über GET an die URL gehängt. Dies sieht dann folgendermaßen aus:
http://localhost/test/session/variante3/ausgabe1.php?PHPSESSID=d77a4f704b938b240e4228a7e0847895
Für die Übertragung der Session ID gibt es weitere Möglichkeiten. Dazu später mehr. Dieser Session ID kann man beliebig viele Variablen (u.a. Benutzerdaten) zuweisen. In der URL sieht man diese Variablen nicht, hier ist weiter- hin nur die Session ID sichtbar!
Start der Session ID
Beim Start der Session ID muss man sich im klaren sein, wann eine Session exakt gestartet werden soll. So kann man die Session ID gleich beim betreten der Webseite od. z.B. erst nach erfolgreichem einloggen starten. Hierfür gehen wir später noch intensiver drauf ein:
Eine Session ID wird mit folgender Funktion gestartet:
<? session_start(); ?>
Es ist darauf zu achten, dass die Session nach Möglichkeit vor allem anderen gestartet wird, damit alle Teile des Scriptes darauf zugreifen können. Auch vor Beginn des HTML Codes!!!
<? session_start(); ?>
<html> <head> <title>Selfhtml</title> </head>
Verknüpfung Variablen an die Session ID
Wie bereits angesprochen kann man der Session ID beliebig viele Variablen zuweisen, so z.B. eine Benutzerkennung. Hierfür steht uns wiederrum, wie bei der Post u. Get Methode ein Array zur Verfügung.
$_SESSION['benutzer'] = „okei“;
Bei dem Indexschlüssel handelt es sich um einen String. Diesen kann man beliebig definieren!
Übergabe der Session ID
Für die Übertragung der Session ID von Script zu Script gibt es 3 Möglichkeiten:
1. GET - Die einfachste Möglichkeit ist es, die Session-ID über die URL mitzugeben. Die URL könnte dann so aussehen.
2. POST – Man kann die Session ID auch über ein Formular übertragen. Hierfür gibt es wiederrum 2 Möglichkeiten:
Dies entspricht dann wieder der GET Methode, obwohl das Script über POST gesendet wird.
2. Im Formular fügt man ein hidden-input-Feld ein. Somit wird die Session-ID als pseudo-Formular-Eingabe gesendet.
|
|
| Aktualisiert ( Mittwoch, den 09. September 2009 um 16:32 Uhr ) |