tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
899
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von SonMiko
    SonMiko SonMiko ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    662
    Hallo zusammen,

    ich suche verzweifelt nach einer Möglichkeit ein script aufzurufen bzw. zu interagieren wenn
    die Session eines Users abläuft.

    Warum? - Nun ich habe auf meiner Seite eine art Onlineindikator eingebaut.
    Loggt man sich ein, wird man als online aufgeführt (wenn man möchte).
    Loggt man sich aus, wird auch ein Script ausgeführt um den Status wieder auf offline zu setzen.

    Leider loggen sich ja bekanntlich viele User nicht aus, diese bleiben dann als online markiert.
    Was kann man in einem solchen Fall tun?

    Könnte man eventuell irgendwie auf die Session reagieren wenn sie abläuft?

    Was gibt es generell für Funktionen um beispielsweise alle aktiven Sessions des Servers einzusehen (gibts sowas überhaupt?),
    gezielt zu schließen etc. (Session Destroy bezieht sich ja auf die eigene Session...)...

    Ich wäre froh für alle erdenklichen Tips...

    Besten Dank und freundliche Grüße,

    Mike
     
    Besten Gruß,

    Mike

  2. #2
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Ad hoc fallen mir da vier Möglichkeiten ein:
    • du prüfst mit AJAX in bestimmten Abständen den Sitzungsstatus der angemeldeten Nutzer. Falls dieser überfällig sein sollte, schickst du an seine aktuelle Seite einen Befehl zum Abmelden.
    • du prüfst in bestimmten Abständen die Stati aller Nutzer die als angemeldet angezeigt werden (mit CronJobs). Falls Nutzer mit überfälliger Session dabei sind, sollen sie abgemeldet werden.
    • du baust das zuletzt genannte in jede Seite ein und somit wird bei jedem Seitenaufruf überprüft, ob noch überfällige Sessions offen sind.
    • du setzt einfach einen Zeitstempel für die letzte Aktivität. Falls diese überfällig ist, wird als Anmeldungsstatus "offline" (oder was du da gerne hättest) angezeigt.
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  3. #3
    Avatar von SonMiko
    SonMiko SonMiko ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    662
    Hi,

    danke für die vielen Ideen-Ansätze - ein Paar davon könnte ich mit Sicherheit nutzen.
    Trotzdem hatte ich eigentlich auf Session-Funktionen gehofft die einem generell das Leben etwas
    erleichtern - das PHP Manual lieferte allerdings in der Befehlsreferenz auch keine brauchbaren Funktionen
    weswegen ich es dann wohl mit ständigem Überprüfen oder ständigem Status setzen lösen muss.

    Besten Gruß,

    Mike
     
    Besten Gruß,

    Mike

  4. #4
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Der Punkt ist, dass PHP eine serverseitige Programmiersprache ist, welche bei jedem Aufruf die Inhalte kompiliert und vollständig an den Browser sendet. Das bedeutet allerdings auch, dass diese Seite keine Ereignisse verarbeiten kann nach dem sie einmal gesendet wurde. Erst ein erneuter Aufruf der Seite ermöglicht Änderungen. Deswegen muss man die Seite entweder regelmäßig aufrufen oder mit einer anderen clientseitigen Sprache (wie JavaScript) auf Ereignisse abfangen und dann diese an eine andere PHP-Datei weiterleiten.
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  5. #5
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Moin,

    Zitat Zitat von SonMiko Beitrag anzeigen
    Was gibt es generell für Funktionen um beispielsweise alle aktiven Sessions des Servers einzusehen (gibts sowas überhaupt?),
    gezielt zu schließen etc. (Session Destroy bezieht sich ja auf die eigene Session...)...
    Jo, das ist recht wirr

    Sessions gibts ja im Browser, und nicht auf dem Server(zumindest in dem Zusammenhang).

    Um die "aktiven Sessions des Servers" ....wenn man es so nennen will, einzusehen, wäre Voraussetzung, dass du bei jedem Zugriff eine Session-Variable aktualisierst, nur dann erfolgt auf dem Server ein Schreibzugriff(ob nun in DB oder Datei hängt davon ab, wie du die Sessions verwaltest).

    Das wäre dann der Ansatz, wo du nachhaken kannst.
    Wird eine Datei geschrieben(für jede Session wird ja bspw. eine eigene Datei im session_save_path gespeichert) kannst du ...deren Änderungsdatum ermitteln und danach filtern, wer noch "aktiv" ist(vorausgesetzt, du speicherst auch etwas in der Session, woran du erkennst, wer wer ist)

    Eine Variante ohne JS:
    Baue ein verstecktes IFRame in die Seite, welches sich in Abständen per META-Refresh aktualisert und so die Session aufrecht erhält, wenn man mal etwas länger auf derselben Seite verweilt.
     

Ähnliche Themen

  1. session.timeout
    Von katty im Forum ASP
    Antworten: 3
    Letzter Beitrag: 25.09.09, 21:32
  2. Session Timeout erhöhen
    Von schutzgeist im Forum ASP
    Antworten: 1
    Letzter Beitrag: 14.07.07, 23:10
  3. Standardzeit für Session Timeout
    Von tinella im Forum PHP
    Antworten: 10
    Letzter Beitrag: 15.09.06, 11:25
  4. [Problem] Session Timeout ?
    Von Trash im Forum PHP
    Antworten: 0
    Letzter Beitrag: 18.04.02, 20:33
  5. Session.Timeout festlegen
    Von Deemax im Forum PHP
    Antworten: 1
    Letzter Beitrag: 17.08.01, 22:16