Endlosschleife Countdown

brauch ihr nicht.
jedesmal wenn ihr die Seite aufruft, bekommt ihr immer den timestamp von user id 1:

$sql = 'SELECT `energy_time` FROM `user` WHERE `ID` = "1"';
somit seit ihr theoretisch als user 1 eingeloggt
 
brauch ihr nicht.
jedesmal wenn ihr die Seite aufruft, bekommt ihr immer den timestamp von user id 1:

$sql = 'SELECT `energy_time` FROM `user` WHERE `ID` = "1"';
somit seit ihr theoretisch als user 1 eingeloggt
Wenn jeder (unangemeldete) Besucher automatisch als "User 1" eingeloggt wird, darfst du dich auch nicht über dein provoziertes Fehlverhalten wundern:
allerdings ist mir jetzt ein Fehler aufgefallen,

wenn ich diesen Counter in 2 Browsern manuell aufhaben, einen lasse ich einfach so laufen, bei dem anderen drücke ich ab und zu mal neu laden der seite und dann kommt der counter ins schwitzen, er ruft dann sehr oft ganz schnell hintereinander die .load funktion auf, welche mir in der DB einen Wert um +1 erhöht.

ne idee woran das liegen kann?
Sorry, aber das Thema hat sich augenscheinlich wg. deiner Beratungsresistenz zu einer Endlosschleife entwickelt!
 
@SpiceLab
das hat nichts mit einer Beratungsresistenz zu tun.
Nur ich versuche es zu verstehen, allerdings ergibt sich für mich im moment da keinen Sinn.
Entweder hab ich oder ihr ein Denkfehler ^^

Ich habe jetzt erst Mal nur einen Testseite.
Später soll jeder user einen eigenen timestamp (welcher 5 min in der Zukunft liegt) in der Datenbank stehen haben und der Counter soll die Differenz zwischen dem Datenbank Timestamp und dem jetzigen TimeStamp herunterzählen.



Mir ist allesdings aufgefallen, wenn man jetzt theoretisch 2x in verschiedenen Browsern sich als User 1 anmeldet, es trotzdem zu Zeitdifferenzen bei den countern kommt und das darf ja nicht sein.

Und nichts anderes habe ich mit meiner Testseite jetzt simuliert.
Diese könnt ihr aufrufen und das php script holt euch jeweils nur den timestamp von User 1 - andere User spielen dabei aktuell keine Rolle.

Somit greift ihr immer auf den selben TimeStamp zu - also darf doch keine Differenz bei den Counter im Firefox und Safari (können auch andere Browser sein) auftreten.
 
Entweder hab ich oder ihr ein Denkfehler ^^
Drei User (Sempervivum, sheel & ich) sollen denselben Denkfehler begehen? Gewagte Theorie :D
Mir ist allesdings aufgefallen, wenn man jetzt theoretisch 2x in verschiedenen Browsern sich als User 1 anmeldet, es trotzdem zu Zeitdifferenzen bei den countern kommt und das darf ja nicht sein.
Zur Erinnerung dieser Dialog (Post #30 - #32):
Habe ich doch erklärt: Auf der Seite können ja gleichzeitig mehrere Besucher sein, so wie es der Fall ist, wenn Du die Seite zweimal in zwei Browsern geöffnet hast. Dann müsstest Du den Zählerstand doppelt in der DB ablegen, für jeden Besucher getrennt.
Moment!
Du hast ja nur ein Testbeispielt:

Im Endeffekt loggt man sich erst Mal ein.
Jeder User hat eine ID und dementsprechende einen zugewiesenen TimeStamp.
Wenn ich also im Firefox und Safari als User 1 eingeloggt bin, habe ich somit in beiden Browsern den selben TimeStamp.
Dann passt ja alles. Wie Sempervivum geschrieben hat, ist das automatische Identifizieren
bzw. das Auseinanderhalten verschiedener User das Hauptproblem. Mit Login ist man dann
ja schon eindeutig identifiziert.
 
sry leute, aber ich kann dir / euch nicht folgen, da ich dies komplett anders sehe.

Habe ich doch erklärt: Auf der Seite können ja gleichzeitig mehrere Besucher sein, so wie es der Fall ist, wenn Du die Seite zweimal in zwei Browsern geöffnet hast. Dann müsstest Du den Zählerstand doppelt in der DB ablegen, für jeden Besucher getrennt.

Das kann ich schon nicht nachvollziehen.
Es gibt keinen Zählerstand in der Datenbank.

ist gibt nur einen timestamp welcher 5 min in der Zukunft liegt.
Jedes mal, wenn die Seite neu aufgerufen wird, lasse ich diese timestamp auslesen und geben diesen an den Counter weiter und dieser
zählt von diesem wert herunter...


was müsste ich machen, damit wir auf einen gemeinsamen Nenner kommen?
 
was müsste ich machen, damit wir auf einen gemeinsamen Nenner kommen?
Den Zusammenhang erklären, damit man eine Vorstellung davon bekommt, was Du da eigentlich vor hast. Das ist mir nämlich völlig unklar: Sollen die Zähler synchron laufen (wenn man die Testseite mehrfach aufruft, tun sie es nicht). Wie willst Du erreichen, dass der Zähler beim Neuladen mit dem alten Stand weiter macht?
 
Zuletzt bearbeitet:
Das Problem ist doch sehr trivial: es gibt einen Zeitstempel, der in der Datenbank steht. Dieser wird jedes Mal für den entsprechenden Nutzer von dort geladen. Den Zählerstand ermittelt man dann aus dem aktuellen Zeitstempel und dem Zeitstempel aus der Datenbank. Ergo ist die Differenz das, was gewünscht ist. Somit fängt der Zähler beim Neuladen genau dort auf, wo er sein müsste – unabhängig davon, wie häufig oder wann er geladen wurde oder in wie vielen Browsern er gleichzeitig läuft.
 
Es kommt halt darauf an, von wo Du den aktuellen Zeitstempel nimmst. Theoretisch sollte nicht ausschließlich an der Systemzeit des Nutzers hängen, sondern an einer synchronisierten Zeit, aber so genau kann man das auch nicht sagen. Außerdem muss man auch noch die Zeitzonen beachten, die da reinspielen könnten. Am besten wäre es natürlich, alles auf GMT zu setzen.. oder eben einen anderen Standard.
 
Zurück