Як визначити кількість відвідувачів на сайті онлайн
PHP скрипт для визначення кількості відвідувачів на веб-сайті онлайн. Автор: А. Гречухін (http://atlanto.ru)
В Інтернеті багато готових скриптів, що дозволяють вважати користувачів онлайн, але якщо ви читаєте цю статтю, значить, ви як і я не особливо любите колупатися в чужому коді. Ну, у такому разі, давайте, напишемо такий скрипт самі. Але насамперед поговоримо про його переваги та недоліки.
Йому не потрібна реляційна база даних, що погодьтеся, у нашому Рунеті (я маю на увазі щодо безкоштовну його частину), є безперечною перевагою.
Знову ж таки безсумнівною перевагою є швидкість. Я не полінувався написати подібний скрипт із використанням БД і за допомогою функції microtime() (у самому низу – результат її роботи – «Час генерації: …») виміряв час виконання:
Використовуючи сесії – 0,7 мс
Використовуючи БД – 14,2 мс
Тобто перевага у швидкості – більш ніж у 19 разів! Ви можете сказати: «Тож мені велика справа. Всього 13 мс різниця», та вони мають рацію - а якщо відвідуваність велика? Зростає навантаження на сервер і тоді справді така перевага стає очевидною.
Ще одна перевага - те, що інформація в сесіях зберігається доки не закритий браузер або 1440 секунд (коштує за замовчуванням в php.ini), в БД інформацію про користувачів вам довелося б видаляти вручну.
І останнє – простота, щоб оголосити сесію достатньо викликати функцію session_start(), а щоб налаштувати правильним чином БД потрібно написати цілих 15 рядків коду.
Немає детальної статистики - у зможете тільки дізнатися кількість користувачів в даний момент, для ведення статистики (хіти, хости ...) доведеться таки працювати з БД.
Потрібен PHP4 - хоч як це парадоксально - ще не всі хостери поставили собі PHP4.
ПРИМІТКА: Якщо увас немає спеціальної директорії для зберігання сесій, просто відразу першим рядком додайте:
Тепер пройдемося по окремих частинах коду:
Тепер ми оголошуємо функцію getonlineuser() і відразу відкриваємо "сесійну" директорію: