Chris Weber: Wie erzeuge ich eine session-ID ?

Halloechen,

ich versuche mich gerade im Schreiben einer kleinen Warenkorb-Anwendung mit Perl.  Das ganze laeuft mit nur einem Perl-Script, das je nach Parameter, der von HTML-Code (vom Script erzeugt), uebergeben wird bestimmte Subroutinen aufruft.  Mein eigentliches Problem ist eine session-ID zu erzeugen, damit jeder Benutzer identifiziert werden kann. By the way, es sollte ohne cookies funktionnieren.  In einer fruehreren Version habe ich das ganze geloest in dem der User ganz am Anfang ein Passwort eingeben musste, das er dann mitschleifte.  Das ist aber nicht sicher genug.  Nehmen wir z.B. mal time().  Damit koennte man sowas machen aber wenn ich z.B. $key = time(); schreibe aendert sich ja nicht nur time() sondern der in $key gespeicherte Wert, d.h. ich kann ja nicht immer auf $key zugreifen...

ach langsam wird's mir selber ein wenig zu kompliziert..

Weiss vielleicht jemand Rat ?

Danke
Chris

  1. Mein eigentliches Problem ist eine session-ID zu erzeugen, damit jeder Benutzer identifiziert werden kann. By the way, es sollte ohne cookies funktionieren.
    In einer fruehreren Version habe ich das ganze geloest in dem der User ganz am Anfang ein Passwort eingeben musste, das er dann mitschleifte.

    Aus meiner Sicht unterteilt sich Dein Problem in zwei Abschnitte:

    a) Erzeugen einer eindeutigen Session-ID.
    Ein Passwort alleine ist nicht eindeutig. Aber eine Kombination aus etwas, das der Benutzer definiert, und etwas, das eindeutig ist, sollte Deine Anforderung erfüllen.
    Eindeutig ist beispielsweise eine Kombination aus Datum & Uhrzeit plus die Prozeßkennung eines Server-Prozesses ($PID). Zu einem Zeitpunkt kann es nur einen Prozeß mit einer konkreten PID geben, also muß ein String mit Datum, Uhrzeit und PID eindeutig sein.

    b) Durchschleifen der Information.
    Wenn ein Client eine Session erst einmal begonnen hat, dann muß er wegen des zustandslosen Protokolls HTTP seine Kennung immer wieder mitsenden.
    Über den HTTP-eigenen Mechanismus (http://www.teamone.de/selfaktuell/schroepl01.htm) kann der Browser das alleine; wenn Du eine eigene Session-ID verwenden willst, dann mußt Du diese Kennung selbst immer wieder mitschicken. Dazu mußt Du sie entweder in einem Cookie speichern oder von Seite zu Seite weiterreichen - dazu gibt es im Archiv genügend Ideen.