با سلام خدمت همه
من برای پروژه ام یه آمار گیر ساده با پی اچ پی میخوام که تعداد افراد بازدید کننده و اینکه از کدوم شهر یا کشور اومدن ، با چه دستگاهی اومدن رو بهم بده ، اینو هم میدونم که google analytics یه ابزار فوق العاده عالی و خوبه ، ولی باید این آمار رو داخل خود سایت به کارفرما نشون بدیم
ممنون میشم اگه کسی ایده ایی ، راه حلی داره بگه ، باتشکر
با جاوا اسکریپت اطلاعات بگیر و بیاد توی بک با php ذخیره کن
چون جاوااسکریپت دسترسی های بیشتری میده سمت فرانت که اطلاعات کاربر در حال حاضر بگیری و با php همون لحظه ذخیره کنی توی دیتا بیس که برای داده های آماری هم استفاده کنی
بخش نمایش که دیگه راحت میشی دیتا توی دیتا بیس
google analytics رو متصل کنید به وبسایت
Report > Acquisition > Traffic acquisition
کشور ، شهر ، تعداد و ... بازدیدکنندکان رو بهتون نشون میده .
با سلام مجدد
نمونه ایی از کد جاوا اسکریپتش رو دارین ، یا متغیر مربوط بهش رو که من خودم بقیه راه رو برم
برای ایجاد یک آمارگیر ساده با PHP که بتواند اطلاعاتی مانند تعداد بازدیدکنندگان، شهر یا کشور بازدیدکننده و دستگاه مورد استفاده آنها را نشان دهد، میتوانید مراحل زیر را دنبال کنید:
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'];
}
}
function getGeoInfo($ip) {
$response = file_get_contents("https://ipapi.co/{$ip}/json/");
return json_decode($response, true);
}
شناسایی دستگاه کاربر
از متغیر $_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";
}
}
ذخیره اطلاعات در پایگاه داده
اطلاعات بازدیدکننده را ذخیره کنید:
$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>";
}
نکات تکمیلی:
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟