ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
899
899
EMPFEHLEN
-
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,
MikeBesten Gruß,
Mike
-
23.03.10 20:44 #2
- 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.
-
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ß,
MikeBesten Gruß,
Mike
-
23.03.10 23:35 #4
- 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.
-
Moin,
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
-
session.timeout
Von katty im Forum ASPAntworten: 3Letzter Beitrag: 25.09.09, 21:32 -
Session Timeout erhöhen
Von schutzgeist im Forum ASPAntworten: 1Letzter Beitrag: 14.07.07, 23:10 -
Standardzeit für Session Timeout
Von tinella im Forum PHPAntworten: 10Letzter Beitrag: 15.09.06, 11:25 -
[Problem] Session Timeout ?
Von Trash im Forum PHPAntworten: 0Letzter Beitrag: 18.04.02, 20:33 -
Session.Timeout festlegen
Von Deemax im Forum PHPAntworten: 1Letzter Beitrag: 17.08.01, 22:16





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren