<?php
/* ═══════════════════════════════════════════
   tracker.php — Include this at the TOP of
   every page you want to track.
   Usage: <?php include 'tracker.php'; ?>
   ═══════════════════════════════════════════ */

/* Skip tracking for admin pages */
$current_file = basename($_SERVER['PHP_SELF']);
$skip_pages   = ['admin-login.php','admin-logout.php','tracker-save.php'];
if(in_array($current_file, $skip_pages)) return;

/* Get visitor info */
function get_visitor_ip(){
    foreach(['HTTP_CF_CONNECTING_IP','HTTP_X_FORWARDED_FOR','HTTP_CLIENT_IP','REMOTE_ADDR'] as $key){
        if(!empty($_SERVER[$key])){
            $ip = trim(explode(',',$_SERVER[$key])[0]);
            if(filter_var($ip, FILTER_VALIDATE_IP)) return $ip;
        }
    }
    return '0.0.0.0';
}

function get_device_type($ua){
    if(preg_match('/tablet|ipad/i', $ua))   return 'Tablet';
    if(preg_match('/mobile|android|iphone/i', $ua)) return 'Mobile';
    return 'Desktop';
}

$ip         = get_visitor_ip();
$ua         = $_SERVER['HTTP_USER_AGENT'] ?? '';
$device     = get_device_type($ua);
$page       = $_SERVER['REQUEST_URI'] ?? '/';
$referrer   = $_SERVER['HTTP_REFERER'] ?? 'Direct';
$session_id = session_id() ?: md5($ip.$ua.date('Y-m-d-H'));

/* Inject tiny async JS beacon — non-blocking */
$data = json_encode([
    'ip'         => $ip,
    'device'     => $device,
    'page'       => $page,
    'referrer'   => $referrer,
    'session_id' => $session_id,
    'ua'         => substr($ua, 0, 200),
]);
?>
<script>
(function(){
    var d = <?php echo $data; ?>;
    fetch('tracker-save.php',{
        method:'POST',
        headers:{'Content-Type':'application/json'},
        body:JSON.stringify(d),
        keepalive:true
    });
})();
</script>