sajjadef98 / visitors
Advanced visitors analytics package with MysqliDb
v2.0.0
2025-03-13 18:57 UTC
Requires
- php: ^7.4|^8.0
- ext-json: *
- thingengineer/mysqli-database-class: ^2.9
README
📊 Visitors Analytics Package
پکیج تحلیل بازدیدکنندگان
📦 نصب
با استفاده از Composer:
composer require sajjadef98/visitors
⚙️ راه اندازی اولیه
1. ایجاد جدول دیتابیس
CREATE TABLE `device_info` ( `ip` int(11) NOT NULL AUTO_INCREMENT, `ip_address` varchar(45) COLLATE utf8_persian_ci DEFAULT NULL, `device_model` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL, `phone_model` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL, `user_agent` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL, `url` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`ip`) ) ENGINE=InnoDB AUTO_INCREMENT=51 DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci
2. تنظیمات دیتابیس
require __DIR__.'/vendor/autoload.php'; use Visitors\Visitors; $config = [ 'host' => 'localhost', 'username' => 'root', 'password' => '', 'db' => 'your_database', 'port' => 3306, 'prefix' => '', 'charset' => 'utf8mb4', 'errmode' => 'exception' ];
3. مقداردهی اولیه
$url = (empty($_SERVER['HTTPS']) ? 'http' : 'https') . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $visitors = new Visitors(new MysqliDb($config), $url);
🚀 نحوه استفاده
ردیابی بازدیدها (در هر صفحه):
$tracker = new Visitors\Insert_User_Data(new MysqliDb($config)); $tracker->GUDI(); // ذخیره خودکار اطلاعات بازدید
نمایش نمودار (در صفحه مدیریت):
if ($_SERVER['REQUEST_METHOD'] === 'POST') { $visitors->chartApi(); // خروجی JSON برای AJAX die(); } if (isset($_GET)) { $visitors->chart(); // نمایش صفحه با نمودار die(); }
🔑 ویژگیهای کلیدی
- 📊 نمایش نمودارهای تعاملی با Chart.js
- 🌍 شناسایی موقعیت جغرافیایی
- 📱 تشخیص خودکار نوع دستگاه
- 🔒 سیستم امنیتی پیشرفته
- 📈 گزارشگیری حرفهای
📄 لایسنس
این پروژه تحت لایسنس MIT منتشر شده است.
📦 Installation
Using Composer:
composer require sajjadef98/visitors
⚙️ Initial Setup
1. Create Database Table
CREATE TABLE `device_info` ( `ip` int(11) NOT NULL AUTO_INCREMENT, `ip_address` varchar(45) COLLATE utf8_persian_ci DEFAULT NULL, `device_model` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL, `phone_model` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL, `user_agent` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL, `url` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`ip`) ) ENGINE=InnoDB AUTO_INCREMENT=51 DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci
2. Database Configuration
require __DIR__.'/vendor/autoload.php'; use Visitors\Visitors; $config = [ 'host' => 'localhost', 'username' => 'root', 'password' => '', 'db' => 'your_database', 'port' => 3306, 'prefix' => '', 'charset' => 'utf8mb4', 'errmode' => 'exception' ];
3. Initialization
$url = (empty($_SERVER['HTTPS']) ? 'http' : 'https') . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $visitors = new Visitors(new MysqliDb($config), $url);
🚀 Usage
Track Visits (on every page):
$tracker = new Visitors\Insert_User_Data(new MysqliDb($config)); $tracker->GUDI(); // Auto-save visit data
Display Charts (in admin panel):
if ($_SERVER['REQUEST_METHOD'] === 'POST') { $visitors->chartApi(); // JSON output for AJAX die(); } if (isset($_GET)) { $visitors->chart(); // Display chart page die(); }
🔑 Key Features
- 📊 Interactive Charts with Chart.js
- 🌍 Geolocation Tracking
- 📱 Automatic Device Detection
- 🔒 Advanced Security System
- 📈 Professional Reporting
📄 License
This project is licensed under the MIT License.