Jump to content
php.lv forumi

Online counter


tiy

Recommended Posts

Ka var izdarit ta, lai varetu dabut Online counter, lai raditu cik cilveku ir portala shobrid.

Es lasu php manuali, bet nevaru piebraukt ir connction_status un ignore_user_abort, kas lauj pateikt kad useris ir nospiedis stop vai izgajis lauka no saita, bet kaut ka neiet ta lieta. Ne jau visi useri spiedis iziet vai logout.

 

Ka tad isti tur viss notiek, biju dzirdejis par variantu, kad skatas kad useris modifikacijas, ieraksta laiku un, tad atkal skatas pec kada laika vai useris atkal ir kaut ko veicis kaut ka ta.

 

Isti nezinu un gribetos, lai pastastitu, vai vel paraditu kadas funkcijas.

Link to comment
Share on other sites

pieraksti katra usera pēdējās aktivitātes timestapmu, saskaiti cik useri ir bijuši aktīvi pēdējās 5, 10, 15min, tad pieņem ka tie ir arī vēl šobrīd online.

 

ja ir logoff fīča, tad vari pie logoffa nonuļot pēdējās aktivitātes laiku vai kaut kā citādi atzīmēt ka useris ir izlogojies.

Edited by v3rb0
Link to comment
Share on other sites

nu ja mysql datubāze, tad viens variants ir uztaisīt memory (heap) tipa tabulu last_action ar laukiem usera_id|pedeja_aktivitate, usera_id uzliec unikālu.

pie katras usera darbibas izdari kveriju 'replace into last_action set usera_id=1, pedeja_aktivitate='.time().'';

onlainā esosos dabū ar select count(*) as is_online from last_action where pedeja_aktivitate > '.time() - (60 * 5).'

 

usera_id vietā var arī izmantot sessijas id.

Link to comment
Share on other sites

nu bez db princips tak tāds pats, tik kveriju vietā jātaisa pašām visa ņemšanās ar faila rakstīšanu/lasīšanu/lockošanu.

 

var iztikt arī bez mktime(), jo vajag tik tekošo unix timestampu un tekošais timestamps mīnus kaut kādas sekundes.

Link to comment
Share on other sites

×
×
  • Create New...