Alle kennen diese Funktion in diversen Foren, was wurde geschrieben als ich weg war?
Habe hier im Forum von einem Mod gelesen, das es keine wirkliche Lösung für diese Problem gibt.
Ich will hier mal meine Vorstellen und ein paar Meinungen dazu einholen, Verbesserungsvorschläge etc.
Los gehts:
Zu erst gibt es in der BenutzerDB 2 Felder, eine namens Session_Time und eine Namens LastVisit!
Der Inhalt des Feldes Session_Time wird bei jedem Click mit dem aktuellen Unixtimestamp ersetzt, ausgenommen der Fall, es ist der erste Click, also der Moment, wo der User das erste Mal die Seite aufruft und die Session erst gestartet wird. In diesem Augenblick wird dann der Wert aus dem Feld Session_Time in das Feld LastVisit geschoben.
Das ist die Grundlage für die neue Beiträge Funktion. Alle Themen, die einen größeren Unixtimestamp in der ThreadDB haben als das Feld LastVisit in der BenutzerDB sind neue Beiträge.
Schön und gut so weit - Doch schon tritt ein weiteres Problem auf. Ihr habt ein Thread gelesen, aber in der Boardansicht wird es immernoch als NEU angezeigt. Was also tun damit man nicht unnötig die mysqlDB zumüllt mit den IDs gelesener Threads?
Die Antwort lautet Sessions!
Es wird an den Session Array ein weiterer Array gehängt namens read_threads, dessen Keys die ThreadIDs sind und dessen Values den letzten Besuch in diesem Thema(mit Timestamp also) enthalten.
So kann man dann leicht in der Boardansicht überprüfen ob man den Thread schon gelesen hat oder nicht, und wenn doch, zugleich überprüfen ob seitdem schon wieder ein Beitrag dort verfasst wurde.
So ein Array kann natürlich ziemlich groß werden, aber die Session zerstört sich ja selber wenn der Benutzer den Browser schliesst.
----------------------------------------------------------------
Ich habe es in meinem Forum so eingebaut und es funktioniert sehr gut und zuverlässig. Mich würde interessieren was ihr zu dieser Lösung sagt?! Gut schlecht? Sollte man lieber lassen?
LG Chris
Habe hier im Forum von einem Mod gelesen, das es keine wirkliche Lösung für diese Problem gibt.
Ich will hier mal meine Vorstellen und ein paar Meinungen dazu einholen, Verbesserungsvorschläge etc.
Los gehts:
Zu erst gibt es in der BenutzerDB 2 Felder, eine namens Session_Time und eine Namens LastVisit!
Der Inhalt des Feldes Session_Time wird bei jedem Click mit dem aktuellen Unixtimestamp ersetzt, ausgenommen der Fall, es ist der erste Click, also der Moment, wo der User das erste Mal die Seite aufruft und die Session erst gestartet wird. In diesem Augenblick wird dann der Wert aus dem Feld Session_Time in das Feld LastVisit geschoben.
Das ist die Grundlage für die neue Beiträge Funktion. Alle Themen, die einen größeren Unixtimestamp in der ThreadDB haben als das Feld LastVisit in der BenutzerDB sind neue Beiträge.
Schön und gut so weit - Doch schon tritt ein weiteres Problem auf. Ihr habt ein Thread gelesen, aber in der Boardansicht wird es immernoch als NEU angezeigt. Was also tun damit man nicht unnötig die mysqlDB zumüllt mit den IDs gelesener Threads?
Die Antwort lautet Sessions!
Es wird an den Session Array ein weiterer Array gehängt namens read_threads, dessen Keys die ThreadIDs sind und dessen Values den letzten Besuch in diesem Thema(mit Timestamp also) enthalten.
So kann man dann leicht in der Boardansicht überprüfen ob man den Thread schon gelesen hat oder nicht, und wenn doch, zugleich überprüfen ob seitdem schon wieder ein Beitrag dort verfasst wurde.
So ein Array kann natürlich ziemlich groß werden, aber die Session zerstört sich ja selber wenn der Benutzer den Browser schliesst.
----------------------------------------------------------------
Ich habe es in meinem Forum so eingebaut und es funktioniert sehr gut und zuverlässig. Mich würde interessieren was ihr zu dieser Lösung sagt?! Gut schlecht? Sollte man lieber lassen?
LG Chris
Kommentar