sajjadef98/visitors

Advanced visitors analytics package with MysqliDb

v2.0.0 2025-03-13 18:57 UTC

This package is auto-updated.

Last update: 2025-03-13 19:48:36 UTC


README

English | فارسی

📊 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.

💖 حمایت/Support

GitHub Stars