JHMF: Perl-Scripts dauerhaft auf Server laufen lassen

Hallo Leute!

Ich hab seid langem mal wieder ne Frage: Ich bastel gerade zur Zeit an einer Seite, mit einem Administrator-bereich. Jeder Login und Logoff bzw. jede Aktion wird in einem LogFile festgehalten. Das Problem: zur Zeit wird der Logoff nur vermerkt, wenn man auf den LogOff-Button klickt! Außerdem ist es zur Zeit noch möglich sich gleichzeitig mehrmals mit den selben Daten einzuloggen.

Meine Frage nun: wäre es möglich beim Login ein Perl-Script zu starten, welches permanent das Browserfenster des eingeloggten Administrators anspricht und sobald sich da die URL ändert oder dieses Fenster gar nicht mehr existiert vermerkt das Script den Logoff im LogFile und beendet sich danach, genauso wenn der Logoff-Button gedrückt wurde! Ist sowas überhaupt möglich (das ein Perl-Script permanent läuft und ständig des Browserfenster anspricht) und vor allem wäre mir eine vergleichbare Alternative dazu lieber, da ein permanent laufendes Script den Server ja doch ganz schön belastet :(

Danke für eure Hilfe, JHMF

  1. hi!

    Meine Frage nun: wäre es möglich beim Login ein Perl-Script zu
    starten, welches permanent das Browserfenster des eingeloggten
    Administrators anspricht und sobald sich da die URL ändert oder
    dieses Fenster gar nicht mehr existiert vermerkt das Script den
    Logoff im LogFile und beendet sich danach, genauso wenn der
    Logoff-Button gedrückt wurde! Ist sowas überhaupt möglich (das ein
    Perl-Script permanent läuft und ständig des Browserfenster
    anspricht)

    Nein, das geht nicht. CGI-Skripts können überhaupt nicht mit dem
    Browser kommunizieren, außer der Möglichkeit, auf Anfrage Daten zu
    senden. Aber es gibt keine dauerhafte Verbindung oder etwas in der
    Art.

    Zu deinem Problem: lösbar wäre das zb. mit einem Timeout, d.h. der
    Benutzer wird nach X Minuten inaktivität (wenn er keine andere Seite
    aus deinem Web mehr aufruft) automatisch ausgeloggt, beispielsweise
    von einem cron-Job. Dazu legst du ein Logfile an, in dem jeder gerade
    eingeloggte Benutzer samt letzter Zugriffszeit gespeichert wird.

    So kannst du auch immer auslesen, wer gerade eingeloggt ist und ein
    zweites Login verhindern.

    bye, Frank!

    1. Zu deinem Problem: lösbar wäre das zb. mit einem Timeout, d.h. der
      Benutzer wird nach X Minuten inaktivität (wenn er keine andere Seite
      aus deinem Web mehr aufruft) automatisch ausgeloggt, beispielsweise
      von einem cron-Job. Dazu legst du ein Logfile an, in dem jeder gerade
      eingeloggte Benutzer samt letzter Zugriffszeit gespeichert wird.

      So kannst du auch immer auslesen, wer gerade eingeloggt ist und ein
      zweites Login verhindern.

      bye, Frank!

      Ah, das klingt schon ganz gut, aber: was ist ein cron-Job? Solang ich das nicht weiß, kann ich nicht damit anfang das umzusetzen glaube ich!

  2. Hi jhmf,

    Habe mich damit nochnicht tifer beschäftigt, aber es müsste doch möglich sein per java-script ein unsichbares frame alle 2 minuten zu aktualisieren, und wenn 2 min kein reqest mehr von dem jeweiligen user kommt, dann ist der ausgeloggt. Das währe natürlich nicht besonderst sicher, und die user müssten alle java-script aktiviert haben, aber ich glaube viele andere möglichkeiten wirst du kaum haben.

    MfG
    Complex