Automatische einträge in die Datenbank
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abgespeicherten daten
anfang
aufruf
aufrufen
ausprobieren
berechnen
berechnung
besucher
datenbank
dauer
kleiner tipp
minute
nachteil
punkt
sekunde
session
starten
tip
verschwinden
zeitpunkt
-
Hallo,
ich arbeite zurzeit an einem Browsergame. Es steht schonmal alles. Nur würde ich gerne automatisch, wenn ein User Online geht die HP punkte um 1 HP pro Sekunde erhöhen lassen. Aber nur wenn der User online ist. Sobald er sich wieder ausloggt, soll es aufhören. Ist das per PHP & Mysql möglich?
Viele Grüße -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
cookies schrieb:
Allein per PHP geht das nicht.
Du könntest nur beim Aufruf der Seite den Counter starten und beim Schließen der Seite (<body onunload="...) per AJAX ein Script aufrufen, welches den Counter beendet.
LG cookies
Danke, aber so möchte ich das nicht. Das sollte solange die HP +1 füllen, bis der User die Session beendet also sich ausloggt bzw die Session sich selbst beendet. -
cookies schrieb:
Entweder du machst einen Cronjob alle 1 Sekunden oder du speicherst den Anfang der Session, rechnest beim Logout die Dauer aus und erhöhst es entsprechend.
LG cookies
Vielen Dank für deine Antwort. Cronjob ist leider nicht auf Lima-City möglich. Aber deine zweite möglichkeit werde ich ausprobieren. Ich hoffe, dass ich das hinbekomme. -
Du könntest alternativ den Zeitpunkt des Logins in der Datenbank abspeichern und dann bei einer Aktivität während der Session dann die Punkte als "Zeitpunkt der letzten Aktivität - Loginzeitpunkt" berechnen und per UPDATE in der Datenbank abspeichern.
Somit verhinderst Du, dass der Zähler einfach weiterläuft, wenn der Benutzer sich nicht ausloggt... Eine Session wird auch nicht beim Schließen des Browsers einfach so beendet (auf Clientseite zwar schon, aber die Session an sich bleibt auf dem Server 1440 Sekunden nach der letzten Aktivität gespeichert). Außerdem meldet sich die Session nicht, wenn sie automatisch beendet wird. Es verschwinden dann nur die temporär abgespeicherten Daten. Du würdest also niemals Bescheid bekommen, wenn ein Besucher sich nicht ausloggt.
Nachteil dieser Berechnung, dass die Punkte immer nur von Loginzeitpunkt bis zum letzten Klick ermittelt werden. Wenn der Besucher nach dem letzten Klick z.B. noch 2 Minuten weiterhin auf der Seite verharrt (ohne weitere Aktivität) bekommt er diese Punkte dann nicht.
Und: kleiner Tipp. Cronjob.de bietet Cronjobs kostenlos. Für nicht zahlende Kunden wird der Cronjob minimal alle 5 Minuten ausgeführt. -
Hallo,
vielen Dank für den Tipp. Ich werde es durch Cronjobs probieren, da ich mein Heilungssystem etwas anpassen werde. D.h. ich werde einfach alle X Minuten um X Hp heilen. Vielen Dank für eure Hilfe.
Viele Grüße -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage