PHP/MySQL - Sessions - Eine Session starten
1. Die Abschnitte
- Überblick
- Eine Session starten
- Eine Session füllen
- Eine Session killen
- Die Session-ID
- Generelle Tipps
2. Etwas vorab
Leider geistern zu diesem Thema immer noch unzählige alte Geschichten durch das Internet. Da gibt es dann so seltsame Sachen wie
session_register
oder $HTTP_SESSION_VARS
. Wenn ihr dergleichen findet, verhaltet euch so, als wenn euch mal wieder
ein älteres Semester das große Gemetzel im letzten Jahrhundert zu Gehör bringen möchte.
"Oh Gott. Opa erzählt vom Krieg" [Quelle: genervte Nach45er, Hirn auf Off]
Haltet euch wirklich nur an das, was ich euch hier zeige. Es sei denn, ich erzähle irgendeinen Bockmist. In dem Fall schickt mir bitte eine Mail.
3. Eine Session starten
... ist wirklich nur pillepups. Das geschieht mit einem einfachen session_start()
. Aber! Auch hier muss
man auf dieselben Dinge achten wie bei den Headern. Es darf also keinerlei Ausgabe an den Browser
gesendet werden. Sonst haut's euch die übliche Meldung Warning: Cannot modify header information - headers already sent by ...
um die Ohren. Und das zu Recht!
Wichtig!
Dieses session_start()
muss auf jeder eurer Hauptseiten stehen, sonst funktioniert das nicht. Unter Hauptseiten müsst ihr
euch einfach gesagt alle Dateien vorstellen, die nicht includiert werden. Alternativ könnt ihr das in eine Datei packen, die dann auf
allen anderen Hauptseiten eingebunden wird.
Also erstellt eine PHP-Datei, klatscht das session_start
rein und ruft sie im Browser auf.
4. Die Funktionsweise
Zunächst mal wird auf dem Server(!) eine Datei mit einem eindeutigen Namen angelegt. Darum ist der Dateiname auch recht kompliziert und könnte zum Beispiel so aussehen.
Das Cookie
... bekommt nun den Namen, der in session.name
in der php.ini
vorgegeben ist. Meistens handelt es sich dabei
um PHPSESSID
. Die wichtigen Einträge habe ich mal rot markiert. Achtet vor allem auf den Inhalt, denn dort ist der Name
der Sessiondatei abgespeichert, nur ohne das Praefix sess_
. Das wird von PHP automatisch verarbeitet.
Ach ja, das bekommt ihr im Firefox mittels "Extras -> Einstellungen -> Datenschutz -> Cookies anzeigen" zu Gesicht. Wie es bei anderen Browsern aussieht? Keine Ahnung, das müsst ihr schon selber herausfinden.
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt