ПредишенСледващото

На интернет, много готови скриптове, които дават възможност на онлайн потребителите да се вземат предвид, но ако четете това, това означава, че ви харесва, и аз не особено като ровя в някой друг код. Е, тогава е така, нека да напиша сценарий за себе си. Но първо нека да поговорим за своите плюсове и минуси.

Той не се нуждае от релационна база данни, което е в съответствие, в нашата Runet (искам да кажа по отношение на свободната част от нея), това е предимство.
Отново, очевидно предимство е скорост. Аз не съм твърде мързеливи, за да напише подобен сценарий, като се използва базата данни и използване на функцията microtime () (в долната част - в резултат на работата си - "Срок за изпълнение: ..."), измерено времето за изпълнение:
Използването на сесии - 0,7 мс
Използването на DB - 14,2 мс
Това е предимството на скоростта - повече от 19 пъти! Можете да кажете. "Аз също много. Едва 13 мс разлика ", но те ще бъдат правилни - голяма посещаемост, ако? Увеличаването на натоварването на сървъра, и след това наистина предимството стане ясно.
Друго предимство - фактът, че на заседанията на информацията се съхраняват, докато не се затвори браузъра, или 1440 секунди (трябва по подразбиране в php.ini), информацията от базата данни на потребителя, който трябва да бъде премахнат ръчно.
И на последно място - лесно да се декларират сесия просто се обадете session_start (функция), и да се създаде по правилния начин да се напише в базата данни най-много 15 реда код.

Не са подробни статистически данни - които ще можете да видите броя на потребителите в момента, за статистика (обръщения, домакини ...) все още трябва да се работи с базата данни.
Имам нужда от PHP4 - парадоксално - не всички хостинг компании си поставят PHP4.

session_start ();
определи ( "MAX_IDLE_TIME", 3);
функционални getOnlineUsers ()<
ако ($ directory_handle = opendir (session_save_path ())) <
$ Count = 0;
докато (фалшиво! == ($ файл = readdir ($ directory_handle))) <
ако ($ файл! = '.' $ Файл! = '..')<
ако (време () - fileatime (session_save_path () '' $ файл) ..


ЗАБЕЛЕЖКА: Ако не разполагате специална директория за съхранение на сесии, само веднъж на първия ред, да се добави:

Сега проверете отделните части на кода:

Сега ние заявяваме getonlineuser (функция) и веднага се отвори "заседателен" директорията:

ако ($ directory_handle = opendir (session_save_path ()))


След това идва от страна на код, който всъщност е отговорен за брой на потребителите, функцията връща броя на онлайн потребители:

$ Count = 0;
докато (фалшиво! == ($ файл = readdir ($ directory_handle))) <
ако ($ файл! = '.' $ Файл! = '..')<
ако (време () - fileatime (session_save_path () '' $ файл) ..

Свързани статии

Подкрепете проекта - споделете линка, благодаря!