[PHP] Forum users online

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb even rondgekeken of al soortgelijke threads waren. Die zijn er, maar geven geen duidelijk antwoord.

Op mijn forumsite wil ik (zoals op zoveel forums) weergeven welke leden er op dat moment online zijn. Ik had hiervoor inmiddels zelf een oplossing gevonden, maar deze is niet ideaal. Mijn oplossing is als volgt:

De gebruiker logt in en zijn dateLastActive-veld in de DB wordt geupdate. Vervolgens wordt dit veld geupdate bij iedere pagina die de gebruiker bezoekt. In de 'users online' box worden alleen de users getoond wiens dateLastActive korter dan 15 minuten geleden is.

Het nadeel hiervan is dat (wanneer je op je gemak een thead leest, of even met je favoriete nerdblad op de plee van je af gaat zitten schijten) je sessie/online-status verloopt zodra je 15 minuten idle bent.

Zijn er alternatieven?

Acties:
  • 0 Henk 'm!

  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 17-09 06:59

Eelke Spaak

- Vlad -

Er is geen zinnige manier om te ontdekken of een user nog een pagina aan het bekijken is. De enige interactie tussen user en server (en dus de momenten waarop je online-status kan checken) is op het moment dat pagina's worden opgevraagd.

Het is natuurlijk wel mogelijk om een onzichtbaar frame te maken die automatisch refresht na een paar minuten. Op die manier kan je dan in de PHP-code van dat frame de onlinestatus van de desbetreffende user updaten. Nog een alternatief is een Java-applet of een ActiveX-control, maar dat is uiteraard gigantisch onpraktisch.

TheStreme - Share anything with anyone


Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Volgens mij gebruiken grotere forums (zoals phpBB) ook gewoon de zelfde soort oplossing, daar staat dan ook altijd bij:
This data is based on users active over the past five minutes

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 17-09 16:59

Johnny

ondergewaardeerde internetguru

Als iemand op de WC zit is hij toch niet meer online?

Ookal zou je realtime kunnen bijhouden of een gebruiker een pagina op zijn scherm heeft staan dan kan je nog niet weten of hij actief bzog is met het forum, misschien is het venster geminimaliseerd of zit het ergens achter een tab.

Daarnaast, wat heeft het voor meerwaarde om exact te zien wie er wel/niet bezig is op het forum?

Als je niet wilt dat de sessie verloopt zou de sessietijd kunnen verlengen naar bijvoorbeeld 30 minuten.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok, thanks peeps :) Dan hou ik lekker m'n eigen oplossing aan.

[ Voor 7% gewijzigd door Verwijderd op 19-11-2003 13:15 . Reden: Typo ]