<?php
// magaza/visitor_tracker.php

// Veritabanı bağlantısı yoksa dur (Sizin sisteminizde değişken $db olarak tanımlı)
if (!isset($db)) return;

// Sadece /magaza dizinindeki ziyaretleri takip et
if (strpos($_SERVER['REQUEST_URI'], '/magaza') === false) return;

// Admin panelindeki gezintileri istatistiklere yansıtma (magaza/admin)
if (strpos($_SERVER['REQUEST_URI'], '/admin') !== false) return;

// Bot/Crawler Kontrolü (Arama motoru botlarını ziyaretçi saymamak için)
$userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
if (preg_match('/bot|crawl|curl|dataprovider|search|get|spider|find|java|majesticsEO|google|yahoo|teoma|contaxe|yandex|libwww-perl|facebookexternalhit/i', $userAgent)) {
    return; // Bot ise kaydetme ve işlemi sonlandır
}

try {
    $ip = $_SERVER['REMOTE_ADDR'];
    $currentUrl = $_SERVER['REQUEST_URI'];
    $referer = $_SERVER['HTTP_REFERER'] ?? 'direct'; // Ziyaretçi siteye dışarıdan linkle mi geldi? Yoksa direkt linki yazarak mı?
    
    // Referans linki kendi sitemiz ise (site içi sayfa geçişleri)
    $myHost = $_SERVER['HTTP_HOST'];
    if ($referer != 'direct' && strpos($referer, $myHost) !== false) {
        $referer = 'site_ici'; 
    }

    // --- KULLANICI VE SEPET VERİSİNİ YAKALA ---
    $log_user_id = isset($_SESSION['user_id']) ? $_SESSION['user_id'] : null;
    $log_session_token = isset($_COOKIE['cart_token']) ? $_COOKIE['cart_token'] : session_id();

    // Kaydı Ekle ($db değişkenini kullanarak)
    $stmt = $db->prepare("INSERT INTO visitor_logs (ip_address, user_id, session_token, request_url, referer_url, user_agent, visit_date) VALUES (?, ?, ?, ?, ?, ?, CURDATE())");
    $stmt->execute([$ip, $log_user_id, $log_session_token, $currentUrl, $referer, $userAgent]);

} catch (Exception $e) {
    // Takip sistemi veritabanına bağlanamazsa veya tablo yoksa sitenin açılmasını engellemesin
    // Hata ayıklama yapmak istersen ileride buraya error_log($e->getMessage()); ekleyebilirsin
}
?>