Sandra: Benutzerinformationen an andere Seiten übertragen

Hi,
Ich habe folgendes Problem:
Ich habe mehrere Perl-Scripte mir funktionen, um diese funktionen nutzen zu können muss man angemeldet sein.
Das geht alles nur in der Adressleiste steht dann:
.pl?name=blabla&pass=blabla&1=bla&2=bla ...
Dan gefällt mir nicht und das Script muss jedes mal wieder auf die Benutzerdatei zugreifen um zuüberprüfen ob das Passwort korrekt ist, das dauert!
Ich sah auf anderen Seiten sowas:
?id='221686.2156-216859222558'
So wie das ausieht ist da name und passwort drin.
Kann man sowas auch in Perl machen?
Das währe ja sicherlich einfacher, oder?
Wie geht sowas?
Gibt es dafür ferige scripts?
Vielen Dank
Sandra

  1. Moin Moin !

    Du suchst Sessions. Standard-Feature u.a. von PHP, mit Perl als Modul möglich. Aber Sessions haben auch Nachteile: Man kann sie "entführen", sie setzen ein sauberes Logout voraus und müssen als Notlösung ein immer "falsches" Timeout mitschleppen.

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
    Für eine bessere Übersichtsdarstellung des Forums: http://cforum.teamone.de/phpbt/bug.php?op=show&bugid=103&pos=2
    1. Was heißt entführen, was für ein flschen Layout?
      Und welches Modul?

      1. Nicht falsches Layout, sondern falsches "Timeout", da hast Du ib eiben Satz ziemlich viel verwechselt ;-)

        Bei CPAN gibt es meines Wissens mehrere Module, welche Sessions verwalten können (Apache::Sessions, CGI::Sessions), oder Du erstellts Dir dein eigenes.

        Das ganze funktioniert so:
        Du erzeugst nach dem dem Login eine eindeutige Session-ID, die auf jeder Seite mitgeführt wird. Auf dem Server speicherst Du für jede Session-ID die notwendigen Benutzerdaten (z.B. Benutzername, IP-Adresse und letzte Aktivität). Du kannst nun auf dem Server mittels der Session-ID den Benutzer immer eindeutig identifizieren, musst jedoch keine persönlichen Daten über das Internet versenden.

        Jetzt zu den Problemen:
        Da die Sessionb-ID nach einem Besuch wieder gelöscht werden sollten, muss der Benutzer immer wenn er die Seite verlässt vorher einen Logout auslösen. Du  kannst Dir ja vorstellen, das nicht jeder den Logout-Button klickt, sondern entweder einfach den Browser schliesst, oder weitersurft. Deshalb musst du ein falsches "Timeout" festlegen. Du prüfst also regelmässig, ob eine Session vorhenden ist die älter ist als x Minuten (z.B. 60). Die "alten" Sessions" löscht Du nun. Wenn aber ein Benutzer nur langsam liest, oder gar vor deiner Seite eingeschalfen ist ;-) wird seine Session-ID gelöscht, obwohl er eigentlich noch auf deiner Seite ist.

        greets
        myMojito

        --
        -------------------------------------------
        Mode ist eine Variable, Stil eine Konstante
  2. Hallo Sandra,

    wenn der Seitenaufruf aus einem Formular heraus geschieht, warum nimmst Du
    dann nicht die POST-Methode. Da werden die Formularwerte nicht über die URL
    übergeben.

    Gruß Ralf