Moin!
...ich steh' wohl kurz davor endlich das thema session management in angriff zu nehmen :-)
Nicht unbedingt. :)
Meine Frage bezieht sich nun auf den programmtechnischen ablauf, ich sehe zwei mögliche variante (beide kommen je nach user präferenzen vor).
Die Reihenfolge der Arbeitsschritte ist, wie wahsaga schon erwähnte, im Prinzip irrelevant, solange sie das tut, was du am Ende brauchst.
1 Kurs auswählen
2 >Anmelden / Einloggen<
3 Angaben bestätigen
4 Kurs anmelden
5 Kurs bestätigen (mail, bildschirm)
6 Logout
Die Frage ist: Kann man das nicht alles irgendwie zusammenfassen?
Deshalb zunächst mal die Frage: Welche Vorteile hat der Benutzer, wenn er sich anmeldet/einloggt? Und welche Vorteile hast du davon? Soll heißen: Hast du schon eine Benutzerdatenbank? Brauchst du eine Benutzerdatenbank? Wie umfangreich ist die Geschichte?
Denn alles das, was du da so schön von 1. bis 6. aufgedröselt hast, kann man genausogut auch in einen wenigen Webseiten unterbringen:
Seite 1: Anzeige der Kursinformationen
Seite 2 (generiert mit Parameter von Seite 1 oder unten dran an Seite 1): Formular zur Anmeldung.
Seite 3: Bestätigung der Anmeldung, Mail wegschicken, dich benachrichtigen.
Da kommen im Ganzen System keinerlei Sessions vor, weil sie als unnötig betrachtet wurden.
Login und Session-Management bewahren dich nicht davor, den Benutzerangaben wie Adresse etc. zu mißtrauen. Es gibt so oder so falsche Angaben, sei es absichtlich oder z.B. durch Vertippen.
Nun stell ich mir die Frage wie ich die Handhabung des "Kurs auswählen" unterbringe, dieser Schritt kann ja vor oder nach dem Anmelden geschehen.
Gib dem Benutzer so viel Freiheit, wie er kriegen kann. Wenn du sessionbasiert arbeitest, kannst du (das ist der Sinn einer Session) ja exakt feststellen, ob der Benutzer schon eingeloggt ist. Wenn er etwas tut, was zwingend ein Login benötigt, dann gib ihm an dieser Stelle das Login-Formular nochmal explizit, und nach dem Abschicken dieses Formulars geht es dort weiter, wo der Benutzer eigentlich hin wollte.
Muss ich bei der Variante 2 zwei sessions starten und die Informationen von der einen Session der neuen "Loged-in-Session" übergeben? Geht das überhaupt?
Eine Session ist vollkommen unabhängig von einem Login. Jeder Besucher kriegt, wenn du Sessions verwendest, eine Session-ID. Und in den Session-Daten speicherst du, ob sich der Benutzer schon mal angemeldet hat. Diese Information wird dann entsprechend ausgewertet, wo es notwendig ist.
- Sven Rautenberg
"Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
(fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)