Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako da izbrojim prijavljene korisnike?

[es] :: PHP :: PHP za početnike :: Kako da izbrojim prijavljene korisnike?

[ Pregleda: 1017 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

CiM0beTa

Član broj: 303979
Poruke: 194
*.mediaworksit.net.



+50 Profil

icon Kako da izbrojim prijavljene korisnike?31.03.2013. u 14:28 - pre 83 meseci
Uspero sam da prebrojim ukupno registrovane korisnike citajuci ih iz baze. Ali kako da izbrojim trenutno prijavljene? neki predlog ili link?
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2170
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2234 Profil

icon Re: Kako da izbrojim prijavljene korisnike?31.03.2013. u 14:54 - pre 83 meseci
Mislim da bi ovo dole bilo sasvim dovoljno da ti olakša za početak... a ti nastavi po svom..
inače, nije najnajidealnije niti najpreciznije, ali možeš imati neki uvid i na ovaj način..
Pišem u letu iz glave..

Code (php):


 $mdTimeStamp=md5('uniqueStamp');
 if(!isset($_SESSION[$mdTimeStamp]))
  $_SESSION[$mdTimeStamp]=base64_encode(microtime());
 $uniqueStamp=$_SESSION[$mdTimeStamp];

 


Kako dođe bilo koji posetioc, istog momenta mu se dodeljuje md5('uniqueStamp') i dokle god traje njegovo obitavanje na tvom sajtu imaće tu jednu sesiju 'zalepljenu' samo za njega.
Ti nakon toga možeš da ispišeš da php jednostavno kreira novi fajl i da ga ugura u neki folder koji se zove "tempVisits" (bla, bla, etc.) a kreirani fajl da se zove $uniqueStamp i da prostim prebrojavanjem kreiranih fajlova dobiješ broj korisnika, to jest, broj sesija koje je server kreirao.

Nije najpreciznije, jer, kada neko ode na tvoj sajt pa malo pročavrlja, pa onda ugasi tab ili prozor gde je tvoj sajt, al' ne ugasi browser, sesija koja je kreirana, po defaultu, ako se ne varam, živi nekih 15 minuta.
Dakle, korisnik je bio na tvom sajtu 5 minuta i otišao na drugu lokaciju, nastavio da surfuje.. ti ćeš nakon tih 5 minuta, narednih 10 minuta imati i tog korisnika zabeleženog.

Podrazumeva se da ispišeš i komandu unlink() za svaki fajl onda kada sesija istekne, jer u protivnom, pogađaš... pravi se đubre na serveru i ništa se pod milim bogom ne postiže onda.
Dakle, tu gde je ovo if(!isset($_SESSION[$mdTimeStamp]) nastaviš sa ... dodaš nešto tipa && filemtime() ...

Još bolje je možda da sve te sesije, nazive sesija ispisuješ u samo jednom fajlu...

Code (php):


file_put_contents($userCountFilePathName, "$uniqueTimeStamp \n", FILE_APPEND, LOCK_EX);

 


I posle samo prebrojiš koliko linija ima u tom fajlu i broj linija je ustvari broj korisnika..
Al' isto tako ćeš morati da ispišeš i kod koji će da uklanja liniju koja ne postoji, to jest, ime sesije koja ne postoji u samom fajlu, tako da je možda ipak bolje da rečeš php-u da džidža/briše fajlove.. pre nego da sve trpa u jedan fajl..

You got the point, right? :)

edit: umesto ovoga ..

Code (php):


$_SESSION[$mdTimeStamp]=base64_encode(microtime());

 


možda je bolje ovo?

Code (php):


$_SESSION[$mdTimeStamp]=base64_encode($_SERVER['REQUEST_TIME_FLOAT']);

 


Btw, ne znam ni koliko je ovo dobro ukoliko imaš poprilično mnogo korisnika.. koliko će prebrojavanje onda otežavati rad... i sve propratno što ide uz to..
Ako nećeš da praviš lični "googleAnalyticsREalTime - active user counter" pa da nadgledaš poprilično često ... onda je ok.
about:networking
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Kako da izbrojim prijavljene korisnike?

[ Pregleda: 1017 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.