script til at holde styr på online brugere.

Tags:    php

Hej, jeg sidder også koder et forum boad i PHP/mySql fra bunden af.
Jeg har lavet en funktion som viser hvilke brugere som er online. Som det er lige nu sættes man til at være online når man logger på, og hver gang man klikker på noget sættes en timer til 2min når timeren løber ud sættes status til offline.
Men jeg kunne godt tænke mig at lave en lidt bedre løsning, hvor man rent faktisk kan se med lidt større sikkerhed hvem der er online.
Kan det lade sig gøre at sætte folk til online når de logger på og til offline når de lukker browservinduet?

På forhånd tak.




6 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Jeg vil give Per Sikker Hansen ret i det han siger der. Hvis det er meget vigtigt for dig kunne du lave noget sjov med AJAX så brugeren rapporterer tilbage til serveren på en måde hvert 20. sekund, men det ville kræve alt for meget arbejde og gøre en alt for lille forskel.

-- og i udførelsen vil det være præcis det samme: en timer der bliver opdateret ;)





Hej Toke,

Hvis din host understøtter ASP, benyttes global.asa til at holde check på sessioner til serveren (aktive brugere). Denne kan du opsætte/kode sådan at der i databasen bliver opdateret et felt med antallet af aktive brugere. Dette kan du så hente og benytte i dine PHP sider.

Med venlig hilsen
Ieet

global.asa, uden indæt i databasen
Fold kodeboks ind/udKode 




Hmmm hvad med den meget bedre løsningsmulighed? :P:

Lav en "onunload" på bodyen, der henviser til en funktion med en xmlHttp der igen henviser til en: f.eks. PHP side med forespørgsler der opdaterer brugerens online attribut...



Det du laver nu, er det eneste der kan lade sig gøre. Det er ikke muligt med PHP at opdage hvornår folk lukker browservinduet/surfer videre.

At bruge en timer er den bedst mulige løsning.



Jeg vil give Per Sikker Hansen ret i det han siger der. Hvis det er meget vigtigt for dig kunne du lave noget sjov med AJAX så brugeren rapporterer tilbage til serveren på en måde hvert 20. sekund, men det ville kræve alt for meget arbejde og gøre en alt for lille forskel.





Hej Toke,

Hvis din host understøtter ASP, benyttes global.asa til at holde check på sessioner til serveren (aktive brugere). Denne kan du opsætte/kode sådan at der i databasen bliver opdateret et felt med antallet af aktive brugere. Dette kan du så hente og benytte i dine PHP sider.

Med venlig hilsen
Ieet

global.asa, uden indæt i databasen
Fold kodeboks ind/udKode 

Det er igen bare en timer(På 20 minutter afaik), så det er lidt besværligt at flytte asp ind, når han allerede har en der virker:)



Indlæg senest redigeret d. 18.03.2008 18:30 af Bruger #4479
t