Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo zusammen!

Ich hoffe ich hab das richtige Subforum für meine Frage erwischt, ist etwas Themen-übergreifend.

Und zwar sind mir zur Lösung meines Problems (den Online-Status eines Users in der DB auf offline setzen, wenn der User ohne Logout die Website verlässt) zwei Möglichkeiten eingefallen:

A) Ich benutze per JS (onbeforeunload) eine php-Datei, in der der DB-Eintrag geändert wird (im Detail hab ich hier bei jedem Link zur Navigation innerhalb der Seite eine Variable, die im onbeforeunload überprüft wird). Müsste noch kurz raussuchen wie ich das Anzeigen der php-Datei unterdrücken kann, aber das sollte ja machbar sein.

B) Ich lass über Cronjob.de (mein Anbieter gestattet mir keine eigenen Cronjobs aufm Server) einen Cronjob zb jede Minute eine php-Datei ausführen, die in der Datenbank einen Eintrag bis 0 runterzählt, welcher bei jedem Klick des jeweiligen Users auf meiner Website auf 5 gesetzt wird. So wird ein User 5 Minuten nach seinem letzten Klick als Offline angezeigt.

Lösung A setzt JS voraus, wobei ich eigentlich davon ausgehen kann, dass alle betroffenen User JS installiert haben. Lösung B würde mehr DB-Zugriffe initiieren, aber auch nur bedingt problematisch, da die DB wohl nicht allzu groß sein wird. Ich hab allerdings keine Erfahrungen mit Cronjobs und Cronjob.de - keine Ahnung wie zuverlässig und sicher das ist.

Überseh ich irgendwelche Vor-/Nachteile oder Probleme? Was würden die erfahrenen Webprogrammierer hier eher empfehlen?

Schwarzgelbe Grüße :)

Geschrieben

Hallo,

oder Lösung C. Du hast eine Tabelle wo die aktiven User eingetragen sind. Dann fehlt dir ja nur noch ein Feld mit der Bezeichnung letzte_aktivitaet. Bei jeder Useraktivität wird dort das aktuelle Datum mit Uhrzeit eingetragen. Wenn ein User die Seite verlassen hat, dann wird logischwerweise das Feld nicht mehr aktualisiert. In einem zweiten Schritt läst Du bei jedem Aufruf der Startseite oder so ein zweites Skript laufen welches alle User löscht, die länger als 5 Minuten nicht mehr aktiv waren.

Frank

Geschrieben

Okay, das kommt an Lösung B heran. Ist sicherlich sinnvoller datetime zu benutzen anstatt so einen komischen Zähler, das seh ich ein. Aber wenn der letzte User die Seite verlässt, dann bleibt er unkorrekterweise als Online eingetragen, bis wieder jemand die Startseite aufruft. Ist nicht unbedingt schlimm, aber wenn ich das nicht akzeptieren möchte müsste ein Cronjob her, richtig?

Geschrieben

Theoretisch schon. Ist nur die Frage ob es schlimm ist. Wenn der letzte um 23:00 Uhr die Seite verläst und um 07:00 Uhr kommt der nächste Besucher, dann wird der von 23:00 Uhr automatisch gelöscht und der neue sieht nur das er online ist.

Frank

Geschrieben

Stimmt schon, als Perfektionist akzeptiert man sowas aber erst, wenn man keine bessere Lösung mehr findet. Werds wohl so umsetzen, danke für deine Hilfe! :)

Schönen Abend noch!

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...