Developer blog
Прикручуємо статистику до сайту. Клас збору статистики на PHP та MySql.
Сьогодні напишемо клас, який фіксуватиме кількість відвідувань вашого сайту, а саме хто, коли і звідки прийшов на ваш сайт. Погодьтеся це завжди цікаво знати. Існує безліч сервісів у всесвітньому павутинні, які надають подібну інфу. Перше, що спадає на думку це Google Analytics. Звичайно, за можливостями Ґуля монстра наш сервіс буде мало поступатися :), але зате буде свій, написаний своїми руками сервіс, з можливістю подальшого доопрацювання. А це краще за чужий продукт. Ну це моя думка, а Ви вирішуйте самі… Відразу зазначу, що приклад буде найпростішим для новачків. Наприкінці статті будуть надані рекомендації щодо покращення функціоналу нашого сервісу. Вважаю, головне вказати потрібний напрямок, як можна доступніше пояснити принцип дії системи, а як ускладнити сервіс, розширити функціонал, то вже тямущий чол сам докумекає.
Все, розмови не по темі. Для початку визначимося, звідки братимемо відомості про відвідувачів нашого сайту. А будемо їх брати з елементів масиву $_SERVER, а саме такі елементи:
$_SERVER[“REMOTE_ADDR”]– тут ip, хто відвідав ваш сайт. Для кращого запам'ятовування перекладаю REMOTE - дистанційний, віддалений, ADDR – скорочене від address.
$_SERVER[“HTTP_USER_AGENT”]- операційна система користувача
Приступимо до реалізації задуманого.
Власне і все, тепер достатньо створити екземпляр класу в потрібному місці вашого сценарію, викликати потрібний метод і буде вам щастя :).
require_once 'Stat.php'; // Підключаємо файл із класом $stat = new Stat(); // створюємо екземпляр класу $stat->addStatPage('index', $_SERVER); // записуємо статистику,// замість index – передайте ім'я вашої сторінки
3.Зчитуємо статистику. Накопичені дані потрібно ще й відображати. Для читання даних є методgetStat. На вхід подаються 3 параметри: 1 - обов'язковий параметр - кількість записів якої поверне запит, т.к. Таких може бути дуже багато. 2 - запис(позиція) з якою буде йти вибірка(для можливої посторінкової навігації) 3 - сортування по якому полю(за замовчуванням, відсортовано за датою створення, за спаданням)
На виході метод віддає масив даних, який потім можна вивести там де вам потрібно, у потрібній вам формі;)
$stat->getStat(100); // останніх 100 записів $stat->getStat(100, 100); // 100 записів, починаючи з сотою $stat->getStat(100, 0, 'page, date_create') // останні 100 записів //відсортовані на ім'я сторінки та дату