مهران رضائی
2 ماه پیش توسط مهران رضائی مطرح شد
6 پاسخ

آمارگیر سایت با php

با سلام خدمت همه
من برای پروژه ام یه آمار گیر ساده با پی اچ پی میخوام که تعداد افراد بازدید کننده و اینکه از کدوم شهر یا کشور اومدن ، با چه دستگاهی اومدن رو بهم بده ، اینو هم میدونم که google analytics یه ابزار فوق العاده عالی و خوبه ، ولی باید این آمار رو داخل خود سایت به کارفرما نشون بدیم
ممنون میشم اگه کسی ایده ایی ، راه حلی داره بگه ، باتشکر


ثبت پرسش جدید
ابوالفضل زارعی
تخصص : سئو
@abolfazlzarei 2 ماه پیش مطرح شد
-2

سلام فکر کنم با جاواسکریپت باید کار کنید.


عرشیا محرری
تخصص : تقریبا برنامه نویس بک-اند
@arshia.moharrary 4 هفته پیش مطرح شد
0

فکر کنم باید از api ابزار google analytics استفاده کنید برای دریافت اطلاعات


امیر باقری
تخصص : مدیر عامل
@lordwebiran 4 هفته پیش مطرح شد
0

با جاوا اسکریپت اطلاعات بگیر و بیاد توی بک با php ذخیره کن
چون جاوااسکریپت دسترسی های بیشتری میده سمت فرانت که اطلاعات کاربر در حال حاضر بگیری و با php همون لحظه ذخیره کنی توی دیتا بیس که برای داده های آماری هم استفاده کنی
بخش نمایش که دیگه راحت میشی دیتا توی دیتا بیس


امیرمسعود انصاری
تخصص : Website Developer
@EnzoAnsari 4 هفته پیش مطرح شد
0

google analytics رو متصل کنید به وبسایت
Report > Acquisition > Traffic acquisition
کشور ، شهر ، تعداد و ... بازدیدکنندکان رو بهتون نشون میده .


مهران رضائی
تخصص : برنامه نویس
@mehranrezaie2010 4 هفته پیش مطرح شد
0

با سلام مجدد
نمونه ایی از کد جاوا اسکریپتش رو دارین ، یا متغیر مربوط بهش رو که من خودم بقیه راه رو برم


حمد علی حسام
تخصص : کارمند گارانتی
@alihesam111 4 هفته پیش مطرح شد
0

برای ایجاد یک آمارگیر ساده با PHP که بتواند اطلاعاتی مانند تعداد بازدیدکنندگان، شهر یا کشور بازدیدکننده و دستگاه مورد استفاده آن‌ها را نشان دهد، می‌توانید مراحل زیر را دنبال کنید:

  1. راه‌اندازی پایگاه داده برای ذخیره اطلاعات
    ابتدا یک پایگاه داده ساده ایجاد کنید. مثلاً از MySQL استفاده کنید و جدولی برای ذخیره اطلاعات بازدیدها تعریف کنید.

مثال ساخت جدول:

CREATE TABLE visitors (
    id INT AUTO_INCREMENT PRIMARY KEY,
    ip_address VARCHAR(45) NOT NULL,
    country VARCHAR(100),
    city VARCHAR(100),
    device VARCHAR(100),
    visit_time DATETIME DEFAULT CURRENT_TIMESTAMP
);

2.دریافت IP کاربر
برای شناسایی IP بازدیدکننده:

function getUserIP() {
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        return $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        return $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        return $_SERVER['REMOTE_ADDR'];
    }
}
  1. دریافت اطلاعات مکان جغرافیایی
    از یک API رایگان برای اطلاعات جغرافیایی IP استفاده کنید، مثل ipapi یا ipstack. نمونه استفاده از ipapi:
    function getGeoInfo($ip) {
    $response = file_get_contents("https://ipapi.co/{$ip}/json/");
    return json_decode($response, true);
    }
  1. شناسایی دستگاه کاربر
    از متغیر $_SERVER['HTTP_USER_AGENT'] برای شناسایی دستگاه استفاده کنید:

    function getDevice() {
    $userAgent = $_SERVER['HTTP_USER_AGENT'];
    if (preg_match('/mobile/i', $userAgent)) {
        return "Mobile";
    } elseif (preg_match('/tablet/i', $userAgent)) {
        return "Tablet";
    } else {
        return "Desktop";
    }
    }
  2. ذخیره اطلاعات در پایگاه داده
    اطلاعات بازدیدکننده را ذخیره کنید:

    
    $ip = getUserIP();
    $geoInfo = getGeoInfo($ip);
    $device = getDevice();

$country = $geoInfo['country_name'] ?? 'Unknown';
$city = $geoInfo['city'] ?? 'Unknown';

// اتصال به پایگاه داده
$pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
$stmt = $pdo->prepare("INSERT INTO visitors (ip_address, country, city, device) VALUES (?, ?, ?, ?)");
$stmt->execute([$ip, $country, $city, $device]);


 6. نمایش اطلاعات به کارفرما
اطلاعات را از پایگاه داده بخوانید و نمایش دهید:
```php
$stmt = $pdo->query("SELECT country, city, device, COUNT(*) AS count FROM visitors GROUP BY country, city, device");
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($results as $row) {
    echo "Country: {$row['country']}, City: {$row['city']}, Device: {$row['device']}, Visits: {$row['count']}<br>";
}

نکات تکمیلی:

  1. بهینه‌سازی و امنیت:حتماً کوئری‌های SQL خود را برای جلوگیری از حملات SQL Injection آماده‌سازی کنید.
  2. نمایش جذاب: از یک کتابخانه گرافیکی مثل Chart.js یا Google Charts برای نمایش اطلاعات آماری استفاده کنید.
  3. کش کردن داده‌ها: اگر سایت پرترافیکی دارید، داده‌ها را کش کنید تا از بار اضافی روی سرور جلوگیری شود.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام