Session-Demo
Hier können Sie im Rahmen einer kleinen Login-Funktion sehen und ausprobieren, wie sich verschiedene Änderungen im Code auswirken und wie das Zusammenspiel der Seiten Login und Admin erfolgt. Eine Datenbankanbindung wurde zur Vereinfachung nicht integriert. Probieren Sie folgende Änderungen im Code aus und beobachten Sie, was sich verändert. Versuchen Sie dies nachzuvollziehen.
- Aktivieren Sie die Developer-Werkzeuge Ihres Browsers und schauen Sie ob und wie eine Session-Id übermittelt wird (Cookie/hidden Field)
- Was fällt Ihnen beim Start dieser Seite auf?
- Melden Sie sich in Login.php mit irgendwelchen Daten an, was ändert sich? Wenn Sie weiterhin die Login-Seite sehen möchten, dann machen Sie einen Rechtsklick im linken Frame und wählen zurück.
- Schauen Sie sich die Session-Dateien an, führen Sie dazu folgende Befehle aus (alles nach # ist ein Kommentar!)
- docker exec -it ewa2_php_apache bash # damit starten Sie die bash Ihres Apache-Docker-Containers
- cd /tmp
- more sess_ # mit tab jetzt den Dateinamen vervollständigen lassen
- exit # damit verlassen Sie die bash
- Klicken Sie im Frame links auf 'logout', was verändert sich?
- Passen Sie die Seite Login.php wie folgt an: Rückgabe false bei validateCredentials
- Passen Sie die Seite Login.php wie folgt an: Rückgabe einer anderen Rolle, z.B. 'normal' in getRole
- Passen Sie die Seite Admin.php wie folgt an: kommentieren Sie session_start aus, was passiert nun? Debugger?
- Passen Sie die Seite Login.php wie folgt an: Rufen Sie session_start() als zweite Zeile in processReceivedData auf.
- Passen Sie die Seite Login.php wie folgt an: Rufen Sie session_start() in generateView nach dem Aufruf von generatePageHeader auf (so nicht! warum?).