Și cine este pe site-ul nostru acum?

Există multe scripturi gata făcute pe Internet, care permit utilizatorilor să fie contorizați online, dar din moment ce citiți acest articol, înseamnă că, ca mine, nu vă place să alegeți codul. Ei bine, în acest caz, să scriem singur acest scenariu. Dar mai întâi să vorbim despre avantajele și dezavantajele sale.







Nu are nevoie de o bază de date relațională, pe care o veți accepta, în Runet (o parte relativ liberă) este un avantaj fără îndoială.
Din nou, avantajul fără îndoială este viteza. Nu am fost prea leneș să scriu un script similar folosind baza de date și folosind funcția microtime () (la sfârșitul lucrării - "Generation time: ...") a măsurat timpul de execuție:
Utilizarea sesiunilor - 0,7 ms
Utilizarea DB - 14,2 ms
Asta este, avantajul de viteză este de peste 19 ori! Puteți spune. "Prea grozav pentru mine. Doar o diferență de 13 ms ", da, vor avea dreptate - și dacă participarea este mare? Încărcarea pe server crește și apoi un astfel de avantaj devine evident.
Un alt avantaj este că informațiile din sesiuni sunt stocate până când browserul este închis sau 1440 secunde (este implicit în php.ini), în baza de date despre utilizatorii pe care ar trebui să le ștergeți manual.






Și ultima este simplitatea, pentru a declara o sesiune este suficientă pentru a apela funcția session_start () și pentru a configura imaginea corectă a bazei de date, trebuie să scrieți cel mult 15 linii de cod.

Nu există statistici detaliate - în acest moment puteți afla doar numărul de utilizatori, pentru a păstra statistici (accesări, gazde ...) vor continua să funcționeze cu baza de date.
Aveți nevoie de PHP4 - paradoxal, deși este - nu toți hosterii au pus ei înșiși PHP4.

session_start ();
definiți ("MAX_IDLE_TIME", 3);
funcția getOnlineUsers ()<
dacă ($ director_handle = opendir (session_save_path ())) <
$ count = 0;
în timp ce (false! == ($ file = readdir ($ director_handle)))) <
dacă ($ file! = '.' $ fișier! = '..')<
dacă (time () - fileatime (session_save_path (). '. $ file)


NOTĂ: Dacă nu aveți un director special pentru stocarea sesiunilor, trebuie doar să adăugați imediat primul rând:

Acum, hai să trecem prin câteva părți ale codului:

Acum, declarăm funcția getonlineuser () și deschidem imediat directorul "sesiune":

dacă ($ director_handle = opendir (session_save_path ()))


Apoi vine o bucată de cod, care este de fapt responsabil pentru numărarea utilizatorilor, funcția returnează numărul de utilizatori online:

$ count = 0;
în timp ce (false! == ($ file = readdir ($ director_handle)))) <
dacă ($ file! = '.' $ fișier! = '..')<
dacă (time () - fileatime (session_save_path (). '. $ file)







Articole similare

Trimiteți-le prietenilor: