Letzte Online-Dauer: -1 Jahre, 52 Wochen...

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Letzte Online-Dauer: -1 Jahre, 52 Wochen...

Beitrag von Dungeonwatcher »

Moin! :cool:

Was will mir diese Anzeige im Profil sagen:

Gesamte Online-Dauer: 00:57:59
Letzte Online-Dauer: -1 Jahre, 52 Wochen, 0 Tage, 23:59:59

Warum passiert soetwas?
Soetwas taucht ab und zu bei jedem User auf und ist nach dem nächsten einloggen wieder verschwunden.

Bye/2
diegoriv
Beiträge: 314
Registriert: Di 01.Feb, 2005 15:25
Wohnort: Wien
Kontaktdaten:

Re: Letzte Online-Dauer: -1 Jahre, 52 Wochen...

Beitrag von diegoriv »

[quote="Dungeonwatcher";p="64516"]Was will mir diese Anzeige im Profil sagen:

Gesamte Online-Dauer: 00:57:59
Letzte Online-Dauer: -1 Jahre, 52 Wochen, 0 Tage, 23:59:59

Warum passiert soetwas?[/quote]
Schaut seltsam aus. Vielleicht kontrollierst du einmal, wenn dir das auffällt den db Eintrag bei dem entsprechenden User. Möglicherweise kommt sowas bei 0 raus.

J.
[center]***********************************************************
Alpinum.at - Forum f?r Bergfreunde
***********************************************************[/center]
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Re: Letzte Online-Dauer: -1 Jahre, 52 Wochen...

Beitrag von Dungeonwatcher »

Hmmm, bei diesem User sieht das so aus:

user_totaltime: 3479
diegoriv
Beiträge: 314
Registriert: Di 01.Feb, 2005 15:25
Wohnort: Wien
Kontaktdaten:

Re: Letzte Online-Dauer: -1 Jahre, 52 Wochen...

Beitrag von diegoriv »

[quote="Dungeonwatcher";p="64519"]Hmmm, bei diesem User sieht das so aus:

user_totaltime: 3479[/quote]
Das ist klar, das sind exakt 57 min und 59 sec.

Aber das entscheidende sind die Werte
user_session_time minus user_lastlogon
das ergibt die letzte Onlinedauer.

Ich hab das mal schnell getestet und wie ich richtig vermutet habe, entsteht das, was du angegeben hast exakt dann, wenn der Wert -1 wird.

Bleibt trotzdem die Frage offen, warum user_session_time kleiner als user_lastlogon werden kann.
[center]***********************************************************
Alpinum.at - Forum f?r Bergfreunde
***********************************************************[/center]
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Re: Letzte Online-Dauer: -1 Jahre, 52 Wochen...

Beitrag von Dungeonwatcher »

Hi! :cool:

[quote="diegoriv";p="64561"]Aber das entscheidende sind die Werte
user_session_time minus user_lastlogon
das ergibt die letzte Onlinedauer.[/quote]
Ich hab das mal schnell getestet und wie ich richtig vermutet habe, entsteht das, was du angegeben hast exakt dann, wenn der Wert -1 wird.[/quote]

Ahja. Das wären beim aktueell betroffenen User:

user_session_time: 1153315783 - user_lastlogon: 1153315784 = -1
Bleibt trotzdem die Frage offen, warum user_session_time kleiner als user_lastlogon werden kann.
Das sieht doch irgendwie nach einem Timingproblem aus, oder?
diegoriv
Beiträge: 314
Registriert: Di 01.Feb, 2005 15:25
Wohnort: Wien
Kontaktdaten:

Re: Letzte Online-Dauer: -1 Jahre, 52 Wochen...

Beitrag von diegoriv »

[quote="Dungeonwatcher";p="64563"]Das sieht doch irgendwie nach einem Timingproblem aus, oder?[/quote]
Irgendwie ja, irgendwie aber mir derzeit völlig schleierhaft, weil zu Beginn einer session wird
$current_time = time();
gesetzt und damit sollten auch user_session_time & user_lastlogon einmal gleich sein.

Der Hund muss in der sessions.php begraben sein. Guck mal da oder häng das Teil an.

J.
[center]***********************************************************
Alpinum.at - Forum f?r Bergfreunde
***********************************************************[/center]
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Re: Letzte Online-Dauer: -1 Jahre, 52 Wochen...

Beitrag von Dungeonwatcher »

Hmmm, dann hänge ich sie wohl lieber mal ran... :!:

http://dungeon-bbs.homeip.net/beta/sessions.txt

Dankeschön :cool:
diegoriv
Beiträge: 314
Registriert: Di 01.Feb, 2005 15:25
Wohnort: Wien
Kontaktdaten:

Beitrag von diegoriv »

Die Datei sollte mal soweit passen. Die einzige Krise, die ich sehe, ist die Tatsache, dass dem Setzen von $current_time und dem effektiven Eintrag in die db viele Zeilen noch abzuarbeiten sind.

Ich hab das bei mir getestet und krieg den Effekt allerdings nicht zusammen.

Ich kann mir daher nur vorstellen, dass das Phänomen dann auftritt, wenn der Server kurzzeitig mal nachdenkt - shared server?

Oder aber - meine stärkere Vermutung - dass der IP Country Flag-Mod und ein weiterer, den ich nicht kenne, viel Zeit brauchen bis zum db-update. Da können schon ein paar Zehntel den Bach runter gehen.

Ist halt die Frage, wie oft das vorkommt und wie störend das ist.
[center]***********************************************************
Alpinum.at - Forum f?r Bergfreunde
***********************************************************[/center]
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

[quote="diegoriv";p="64581"]Die Datei sollte mal soweit passen. Die einzige Krise, die ich sehe, ist die Tatsache, dass dem Setzen von $current_time und dem effektiven Eintrag in die db viele Zeilen noch abzuarbeiten sind.[/quote]

Hmmm...
Ich hab das bei mir getestet und krieg den Effekt allerdings nicht zusammen.
Das glaube ich wohl.
Ich kann mir daher nur vorstellen, dass das Phänomen dann auftritt, wenn der Server kurzzeitig mal nachdenkt - shared server?
Nööö, das nicht. Allerdings ist der Server gleichzeitig meine Workstation und ab und zu darf er auch mal so richtig was tun.
Oder aber - meine stärkere Vermutung - dass der IP Country Flag-Mod und ein weiterer, den ich nicht kenne, viel Zeit brauchen bis zum db-update. Da können schon ein paar Zehntel den Bach runter gehen.
Hmmm, dann wohl eher der "Missbrauch" des Servers als Workastation.
Ist halt die Frage, wie oft das vorkommt und wie störend das ist.
Es ist ein Schönheitsfehler ohne wirklich zu stören. Nur einem User (meinem Neffen) fiel das bisher auf. :cool:

Ich versuche mal evtl. Zusammenhänge mit den Systemaktivitäten herzustellen. Z.B. laufen im Stundentakt diverse Cronjobs etc., welche durchaus mal das System zum stocken bringen könnten.
diegoriv
Beiträge: 314
Registriert: Di 01.Feb, 2005 15:25
Wohnort: Wien
Kontaktdaten:

Beitrag von diegoriv »

nun ja, wenn es nicht wirklich ein Problem ist, aber unschön, dann gäbe es noch die Möglichkeit einer kleinen Abfrage, die checkt, ob das Ergebnis a-b=-1 ist und wenn ja, dann kurzerhand a um eins erhöht.
Ist vielleicht nicht die eleganteste Lösung, aber dafür passt äußerlich die Optik und es fällt niemandem auf.

Zumindest würd ich das so lösen - kleiner Schwindel, aber ohne Auswirkungen.

J.
[center]***********************************************************
Alpinum.at - Forum f?r Bergfreunde
***********************************************************[/center]
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Jupp, das wäre nicht schlecht. :cool:

Du hast nicht zufällig die entsprechende Code Änderung/Ergänzung parat? ;)
diegoriv
Beiträge: 314
Registriert: Di 01.Feb, 2005 15:25
Wohnort: Wien
Kontaktdaten:

Beitrag von diegoriv »

[quote="Dungeonwatcher";p="64616"]Du hast nicht zufällig die entsprechende Code Änderung/Ergänzung parat? ;)[/quote]
nö, natürlich nicht, weil ich das Problem nicht habe ;) , aber ich versuch mal:

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
includes/sessions.php

#
#-----[ FIND ]------------------------------------------
#
		$last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; 

#
#-----[ AFTER, ADD ]------------------------------------------
#
		if ( time() - $current_time == 1 )
		{
			$current_time = time();
		}
Bei mir klappt das - zumindest gibt es keinen Fehler.
[center]***********************************************************
Alpinum.at - Forum f?r Bergfreunde
***********************************************************[/center]
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Moin! :cool:

Aaaahhh, dankeschön. Ich hab's eben eingetragen und werde es beobachten.
Antworten