forum

BlackJack

Mitglied
Ich schreibe gerade ein kleines board und hab 2 probleme
1. wie krieg ich es hin das einem user neue einträge angezeigt werden?
2. wie kann ich anzeigen lassen wer gerade online ist? (von den usern natürlich)
 
Original geschrieben von BlackJack
Ich schreibe gerade ein kleines board und hab 2 probleme
1. wie krieg ich es hin das einem user neue einträge angezeigt werden?
2. wie kann ich anzeigen lassen wer gerade online ist? (von den usern natürlich)
Zu 1) Du musst zu jedem User halt das Datum des "zuletzt aktiv" speichern und dann das Datum des neuesten Beitrags im Forum damit vergleichen.

Zu 2) Lässt sich über Sessions regeln. D.h. wenn ein User dein Forum besucht, wird ein neuer Datensatz in einer Tabelle deines Forums angelegt.
 
Servus.

(ich denke mal du hast ne db als datenspeicher)

1.) "einfach" die threads/post zählen dienach dem letzten login des user erstellt wurden bzw. bei der auflistung der post in der html-tabelle ein extra feld für ein evtl. *new* lassen und dann beim auslesen der daten einfach prüfen

PHP:
<?

// ... 

if($letztes_login_user<=$post_datum)
 {
  print "new"; // in der entsprechenden spalte
 }

// ...
?>
2.
eine neue tabelle erstellen mit einer ähnlichen struktur wie diese

+ online_id
+ user_id (oder name)
+ login_datum

dann musst du dir noch ein zeitintervall überlegen.
wenn der user in diesem intervall nicht eine aktion ausführt wird er aus der user_online tabelle gelöscht.

wenn sich der user dann in deinem forum einloggt einfach die daten in diese tabelle eintragen

so in dieser art würd' ich mal denken wenn ich nix vergessen hab.
 
Ich wuerde diesen Thread gerne mit einer Frage ergaenzen...

Die Methode von Hoellche hat einen kleinen Nachteil, denn alle ungelesenen Postings, die aelter als das letzte Login sind, wuerden auch als 'gelesen' bezeichnet.

Da ich selber auch ein kleines Board plane wuerde es mich mal interessieren wie ich es schaffen kann, dass Post solange als New angezeigt werden bis sie wirklich gelesen wurden (selbige Frage gilt auch fuer Topics).

Eine Methode ist mir durchaus klar, ich koennte eien tabelle post2user machen und fuer jeden Post dort einen Eintrag in der Form:
-post_id
-user_id
(ev for the fun of it: timestamp)
anlegen. Diese Methode hat den heftigen Nachteil, dass die arme Datenbank dann wirklich was zu tun hat:) und die Tabelle wohl mit der Zeit astronomische groessen erreichen wird.

Ich kann auch schlecht arrays in Cookies legen da diese A nur eien gewisse maximale Groesse haben duerfen udn es B viel zu nervig fuer den User ist. Session scheiden aus, da man sie nicht immer wiederaufnehmen kann.

Ich lasse mich gerne zu allen Punkten eines Besseren belehren und hoffe das mir jemand die se Frage beantworten kann.

mfg cat:-)
 
Original geschrieben von Cattoaster
Diese Methode hat den heftigen Nachteil, dass die arme Datenbank dann wirklich was zu tun hat:) und die Tabelle wohl mit der Zeit astronomische groessen erreichen wird.
In der Tat. Die Größe ist es nicht nur, sondern auch die Performance. :(

P.S.: Ich kenne leider keine Methode.
 
Zurück