Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

PHP Sessions (Online/Offline)

ZER0-CooL - 36
Champion (offline)

Dabei seit 09.2004
4459 Beiträge

Geschrieben am: 31.08.2007 um 14:28 Uhr
Zuletzt editiert am: 31.08.2007 um 14:28 Uhr

Hi,
auf meiner Seite verwende ich Sessions wenn sich ein User einloggt wird in der mySQL-Datenbank gespeichert das er Online ist und wenn er sich ausloggt wird es auf Offline gesetzt, aber wie kann ich machen das es sich auf Offline setzt wenn der User nicht auf "Logout" klickt?

Gruß ZER0-CooL
McPommes - 51
Experte (offline)

Dabei seit 09.2006
1422 Beiträge
Geschrieben am: 31.08.2007 um 14:33 Uhr

Wenn der Browser geschlossen wird, kriegt dein Server davon nichts mit. Dir bleibt also nur eine regelmäßige Rückmeldung an den Server, die in deiner Seite irgendwo untergebracht ist.
Wenn die dann nicht mehr kommt, kann der Server den User offline setzen.


*** diese Fusszeile verschwendet 45 Bytes ***

ZER0-CooL - 36
Champion (offline)

Dabei seit 09.2004
4459 Beiträge

Geschrieben am: 31.08.2007 um 14:36 Uhr
Zuletzt editiert am: 31.08.2007 um 14:38 Uhr

Ich hätt ja schon ne Idee aber ob das wirklich die beste Möglichkeit ist:
Ich speichere bei jeder Aktion die ein User macht die Uhrzeit und das Datum ab. Am Anfang von der Seite lass ich einfach die Datenbank nach Zeiten durchsuchen die älter als 10 Minuten sind und dort soll dann auf Offline gesetzt werden.

Aber was ist dann wenn der Browser die Seite nicht automatisch aktualisiert, dann würde man ja vlt. nach 11 Minuten klicken wäre auf Offline gesetzt aber die Session wäre noch aktiv :weiner:
TheBrainless - 38
Experte (offline)

Dabei seit 04.2005
1992 Beiträge

Geschrieben am: 31.08.2007 um 14:42 Uhr

Zitat von ZER0-CooL:

Ich hätt ja schon ne Idee aber ob das wirklich die beste Möglichkeit ist:
Ich speichere bei jeder Aktion die ein User macht die Uhrzeit und das Datum ab. Am Anfang von der Seite lass ich einfach die Datenbank nach Zeiten durchsuchen die älter als 10 Minuten sind und dort soll dann auf Offline gesetzt werden.

Aber was ist dann wenn der Browser die Seite nicht automatisch aktualisiert, dann würde man ja vlt. nach 11 Minuten klicken wäre auf Offline gesetzt aber die Session wäre noch aktiv :weiner:


Das risiko musst du eingehn...
Alternativ könnteste es mit JS lösen, sprich, beim schließen des Fensters ne Datei aufrufen, die den Benutzer auslogt...
Alternativ lädste regelmäßig ne kleine Seite in nem I-Frame neu (die Art, wie bei Tu die Messages überprüft werden)

Mörps mörps blubbs!

ZER0-CooL - 36
Champion (offline)

Dabei seit 09.2004
4459 Beiträge

Geschrieben am: 31.08.2007 um 14:47 Uhr
Zuletzt editiert am: 31.08.2007 um 14:48 Uhr

Zitat von TheBrainless:


Das risiko musst du eingehn...
Alternativ könnteste es mit JS lösen, sprich, beim schließen des Fensters ne Datei aufrufen, die den Benutzer auslogt...
Alternativ lädste regelmäßig ne kleine Seite in nem I-Frame neu (die Art, wie bei Tu die Messages überprüft werden)

ok, ich glaub ich geh das risiko ein :-)
kann ja einfach wenn die session noch aktiv ist wieder auf online setzten lassen.....

aber hab gleich nochmal ne Frage:

Bei mir soll jeder User nen eigenes Gästebuch bekommen, was ist da besser: für jeden User ne eigene Tabelle in der Datenbank erstellen wo die Einträge gespeichert werden (könnten auf Dauer ziemlich viele Tabellen werden) oder eine Tabelle wo ALLE Gästebucheinträge gespeichert werden aber mit der ID des jeweiligen Users (könnte bei vielen Gästebucheinträgen auf der Seite ne ziemlich lange Abfrage werden).
TheBrainless - 38
Experte (offline)

Dabei seit 04.2005
1992 Beiträge

Geschrieben am: 31.08.2007 um 14:54 Uhr
Zuletzt editiert am: 31.08.2007 um 14:54 Uhr

Zitat von ZER0-CooL:

[...]
Bei mir soll jeder User nen eigenes Gästebuch bekommen, was ist da besser: für jeden User ne eigene Tabelle in der Datenbank erstellen wo die Einträge gespeichert werden (könnten auf Dauer ziemlich viele Tabellen werden) oder eine Tabelle wo ALLE Gästebucheinträge gespeichert werden aber mit der ID des jeweiligen Users (könnte bei vielen Gästebucheinträgen auf der Seite ne ziemlich lange Abfrage werden).


letzteres dürfte, solange du die indizies sinnvoll einsetzt eigentlich kein größeres problem sein...

Mörps mörps blubbs!

--_Simon_--
Fortgeschrittener (offline)

Dabei seit 06.2007
72 Beiträge
Geschrieben am: 31.08.2007 um 14:54 Uhr
Zuletzt editiert am: 31.08.2007 um 14:55 Uhr

Zitat von ZER0-CooL:

Hi,
auf meiner Seite verwende ich Sessions wenn sich ein User einloggt wird in der mySQL-Datenbank gespeichert das er Online ist und wenn er sich ausloggt wird es auf Offline gesetzt, aber wie kann ich machen das es sich auf Offline setzt wenn der User nicht auf "Logout" klickt?

Gruß ZER0-CooL

einfacgh immer überprüfen, wie alt die session ist
ist der timestamp z.B. mehr als 10 min alt, zeigst du den user als offline an
tobiasge - 43
Team-Ulmler (offline)


Dabei seit 10.2004
339 Beiträge

Geschrieben am: 31.08.2007 um 14:56 Uhr

Ich würde dir eine große Tabelle empfehlen. Sonst hast du nen Problem, wenn sich mal an der Tabellen-Struktur was ändern soll.

Schizophrenia beats being alone. - http://www.amazon.de/wishlist/1PU852AEYW 5B4

--_Simon_--
Fortgeschrittener (offline)

Dabei seit 06.2007
72 Beiträge
Geschrieben am: 31.08.2007 um 14:57 Uhr

Zitat von ZER0-CooL:

Zitat von TheBrainless:


Das risiko musst du eingehn...
Alternativ könnteste es mit JS lösen, sprich, beim schließen des Fensters ne Datei aufrufen, die den Benutzer auslogt...
Alternativ lädste regelmäßig ne kleine Seite in nem I-Frame neu (die Art, wie bei Tu die Messages überprüft werden)

ok, ich glaub ich geh das risiko ein :-)
kann ja einfach wenn die session noch aktiv ist wieder auf online setzten lassen.....

aber hab gleich nochmal ne Frage:

Bei mir soll jeder User nen eigenes Gästebuch bekommen, was ist da besser: für jeden User ne eigene Tabelle in der Datenbank erstellen wo die Einträge gespeichert werden (könnten auf Dauer ziemlich viele Tabellen werden) oder eine Tabelle wo ALLE Gästebucheinträge gespeichert werden aber mit der ID des jeweiligen Users (könnte bei vielen Gästebucheinträgen auf der Seite ne ziemlich lange Abfrage werden).


auf jeden fall eine NORMALISIERTE tabelle für alle user. das bringts viel mehr als 10000 tabellen
ZER0-CooL - 36
Champion (offline)

Dabei seit 09.2004
4459 Beiträge

Geschrieben am: 31.08.2007 um 14:58 Uhr

Zitat von tobiasge:

Ich würde dir eine große Tabelle empfehlen. Sonst hast du nen Problem, wenn sich mal an der Tabellen-Struktur was ändern soll.


Stimmt, wenn ich mal nen Feld hinzufügen/entfernen will müsste ich ja sonst jede Tabelle ändern... thx :-)
McPommes - 51
Experte (offline)

Dabei seit 09.2006
1422 Beiträge
Geschrieben am: 31.08.2007 um 15:16 Uhr

Die Idee mit den einzelnen Tabellen bitte schnell wieder vergessen, niemandem davon erzählen und (falls du in den IT-Bereich willst) bitte nirgends damit bewerben ;-)
Wenn du was wirklich lauffähiges machen willst, frag bei Unsicherheiten lieber vorher ein paar mal zuviel (oder noch besser: lies dich in das Thema ein), als dann irgendwas haarsträubendes zu machen.


*** diese Fusszeile verschwendet 45 Bytes ***

ZER0-CooL - 36
Champion (offline)

Dabei seit 09.2004
4459 Beiträge

Geschrieben am: 31.08.2007 um 15:21 Uhr

Zitat von McPommes:

Die Idee mit den einzelnen Tabellen bitte schnell wieder vergessen, niemandem davon erzählen und (falls du in den IT-Bereich willst) bitte nirgends damit bewerben ;-)
Wenn du was wirklich lauffähiges machen willst, frag bei Unsicherheiten lieber vorher ein paar mal zuviel (oder noch besser: lies dich in das Thema ein), als dann irgendwas haarsträubendes zu machen.


Ja is mir ja jetzt schon selber klar warum, hatte da noch nich so weit nachgedacht!
  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -