Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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 :)

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

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?

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!

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.