shell bypass 403

GrazzMean Shell

: /var/www/vhosts/m-auto.co/httpdocs/ [ drwxr-x--- ]
Uname: Linux serv.m-auto.co 3.10.0-1160.42.2.el7.x86_64 #1 SMP Tue Sep 7 14:49:57 UTC 2021 x86_64
Software: nginx/1.28.2
PHP version: 8.1.34 [ PHP INFO ] PHP os: Linux
Server Ip: 41.215.243.19
Your Ip: 216.73.216.151
User: m-auto.co_vxasg6smqe (10000) | Group: psacln (1003)
Safe Mode: OFF
Disable Function:
opcache_get_status,mail

name : car_details.php
<?php 
session_start();
include 'includes/db.php';
include 'includes/header.php'; 

// Initialize comparison list if not exists
if (!isset($_SESSION['compare_cars'])) {
    $_SESSION['compare_cars'] = [];
} 

// Check for car ID
if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
    header("Location: cars.php");
    exit();
}

$car_id = $_GET['id'];

// Fetch car details
$stmt = $conn->prepare("SELECT * FROM cars WHERE id = ?");
$stmt->bind_param("i", $car_id);
$stmt->execute();
$result = $stmt->get_result();

if ($result->num_rows !== 1) {
    echo "<div class='container text-center my-5 pt-5'><h2>سيارة غير موجودة</h2><a href='cars.php' class='btn btn-primary'>العودة إلى قائمة السيارات</a></div>";
    include 'includes/footer.php';
    exit();
}

$car = $result->fetch_assoc();
$stmt->close();

// Fetch car images from car_images table
$images_stmt = $conn->prepare("SELECT * FROM car_images WHERE car_id = ? ORDER BY is_primary DESC, sort_order ASC");
$images_stmt->bind_param("i", $car_id);
$images_stmt->execute();
$images_result = $images_stmt->get_result();
$car_images = [];
while ($img = $images_result->fetch_assoc()) {
    $car_images[] = $img;
}
$images_stmt->close();

// Fetch trims for this car
$trims_stmt = $conn->prepare("SELECT * FROM car_trims WHERE car_id = ? ORDER BY price ASC");
$trims_stmt->bind_param("i", $car_id);
$trims_stmt->execute();
$trims_result = $trims_stmt->get_result();
$car_trims = [];
while ($trim = $trims_result->fetch_assoc()) {
    $car_trims[] = $trim;
}
$trims_stmt->close();

// Set default trim as the first one
$default_trim = !empty($car_trims) ? $car_trims[0] : null;
?>

<main class="container my-5 pt-5">
    <div class="glass-card p-4 p-md-5">
        <div class="row g-5">
            <!-- Car Images Gallery -->
            <div class="col-lg-7" data-aos="fade-left">
                <?php if (!empty($car_images)): ?>
                    <!-- Main Image -->
                    <div class="main-image-container mb-3">
                        <img id="mainImage" src="uploads/cars/<?= htmlspecialchars($car_images[0]['image_name']) ?>" class="img-fluid rounded shadow-lg" alt="<?= htmlspecialchars($car['name']) ?>">
                    </div>
                    
                    <!-- Thumbnail Gallery -->
                    <?php if (count($car_images) > 1): ?>
                    <div class="thumbnail-gallery">
                        <div class="row g-2">
                            <?php foreach ($car_images as $index => $img): ?>
                            <div class="col-3">
                                <img src="uploads/cars/<?= htmlspecialchars($img['image_name']) ?>" 
                                     class="img-fluid rounded thumbnail-img <?= $index === 0 ? 'active' : '' ?>" 
                                     alt="صورة <?= $index + 1 ?>"
                                     onclick="changeMainImage('uploads/cars/<?= htmlspecialchars($img['image_name']) ?>', this)"
                                     style="cursor: pointer; height: 80px; object-fit: cover; border: 2px solid transparent;">
                            </div>
                            <?php endforeach; ?>
                        </div>
                    </div>
                    <?php endif; ?>
                    
                    <!-- Video Section -->
                    <?php if (!empty($car['video_url'])): ?>
                    <div class="video-section mt-4">
                        <h5 class="mb-3"><i class="fas fa-play-circle"></i> فيديو السيارة</h5>
                        <div class="ratio ratio-16x9">
                            <?php
                            $video_url = $car['video_url'];
                            // Convert YouTube URL to embed format
                            if (strpos($video_url, 'youtube.com/watch?v=') !== false) {
                                $video_id = parse_url($video_url, PHP_URL_QUERY);
                                parse_str($video_id, $params);
                                $video_url = 'https://www.youtube.com/embed/' . $params['v'];
                            } elseif (strpos($video_url, 'youtu.be/') !== false) {
                                $video_id = basename(parse_url($video_url, PHP_URL_PATH));
                                $video_url = 'https://www.youtube.com/embed/' . $video_id;
                            }
                            ?>
                            <iframe src="<?= htmlspecialchars($video_url) ?>" 
                                    title="فيديو السيارة" 
                                    frameborder="0" 
                                    allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" 
                                    allowfullscreen
                                    class="rounded">
                            </iframe>
                        </div>
                    </div>
                    <?php endif; ?>
                    
                <?php else: ?>
                    <!-- Fallback to old image field -->
                    <img src="<?= !empty($car['image']) ? 'uploads/cars/' . htmlspecialchars($car['image']) : 'https://via.placeholder.com/800x600' ?>" class="img-fluid rounded shadow-lg" alt="<?= htmlspecialchars($car['name']) ?>">
                <?php endif; ?>
            </div>

            <!-- Car Details -->
            <div class="col-lg-5" data-aos="fade-right">
                <h1 class="display-5 mb-3"><?= htmlspecialchars($car['name']) ?></h1>
                <p class="text-muted"><?= htmlspecialchars($car['brand']) ?> / <?= htmlspecialchars($car['model']) ?></p>
                
                <?php if (!empty($car_trims)): ?>
                <!-- Trim Selector Dropdown -->
                <div class="mb-4 bg-dark p-3 rounded border border-secondary">
                    <label for="trimSelect" class="form-label text-warning fw-bold"><i class="fas fa-tags me-1"></i> اختر فئة السيارة:</label>
                    <select class="form-select bg-dark text-white border-secondary" id="trimSelect">
                        <?php foreach ($car_trims as $index => $trim): ?>
                            <option value="<?= $index ?>"><?= htmlspecialchars($trim['name']) ?> (<?= number_format($trim['price']) ?> جنيه)</option>
                        <?php endforeach; ?>
                    </select>
                </div>
                <?php endif; ?>

                <div class="d-flex justify-content-between align-items-center my-4">
                    <h2 class="text-danger mb-0"><span id="carPriceDisplay"><?= $default_trim ? number_format($default_trim['price']) : '0' ?></span> جنيه</h2>
                    <span class="badge bg-light text-dark fs-6"><?= htmlspecialchars($car['category']) ?></span>
                </div>

                <!-- Basic Specifications -->
                <ul class="list-group list-group-flush car-specs mb-4">
                    <li class="list-group-item"><strong>الموديل:</strong> <?= htmlspecialchars($car['model']) ?></li>
                    <li class="list-group-item"><strong>سنة الصنع:</strong> <?= htmlspecialchars($car['year']) ?></li>
                    <li class="list-group-item"><strong>الماركة:</strong> <?= htmlspecialchars($car['brand']) ?></li>
                    <li class="list-group-item"><strong>نوع الوقود:</strong> <span id="fuelTypeDisplay"><?= $default_trim ? htmlspecialchars($default_trim['fuel_type']) : 'غير محدد' ?></span></li>
                    <li class="list-group-item"><strong>حالة السيارة:</strong> <span id="conditionDisplay"><?= $default_trim ? htmlspecialchars($default_trim['car_condition']) : 'غير محدد' ?></span></li>
                </ul>

                <!-- Technical Specifications -->
                <div class="technical-specs">
                    <h5 class="mb-3"><i class="fas fa-cogs text-primary"></i> المواصفات الفنية للسيارة</h5>
                    
                    <!-- Engine & Performance -->
                    <div class="spec-section mb-3" id="engineSpecsSection">
                        <h6 class="text-secondary"><i class="fas fa-engine"></i> المحرك والأداء</h6>
                        <ul class="list-group list-group-flush">
                            <li class="list-group-item" id="engineCapacitySection" style="display: <?= ($default_trim && !empty($default_trim['engine_capacity'])) ? 'block' : 'none' ?>;">
                                <strong>سعة المحرك:</strong> <span id="engineCapacityDisplay"><?= $default_trim ? htmlspecialchars($default_trim['engine_capacity']) : '' ?></span>
                            </li>
                            <li class="list-group-item" id="transmissionTypeSection" style="display: <?= ($default_trim && !empty($default_trim['transmission_type'])) ? 'block' : 'none' ?>;">
                                <strong>ناقل الحركة:</strong> <span id="transmissionTypeDisplay"><?= $default_trim ? htmlspecialchars($default_trim['transmission_type']) : '' ?></span>
                            </li>
                            <li class="list-group-item" id="horsepowerSection" style="display: <?= ($default_trim && !empty($default_trim['horsepower'])) ? 'block' : 'none' ?>;">
                                <strong>القوة الحصانية:</strong> <span id="horsepowerDisplay"><?= $default_trim ? htmlspecialchars($default_trim['horsepower']) : '' ?></span> حصان
                            </li>
                            <li class="list-group-item" id="torqueSection" style="display: <?= ($default_trim && !empty($default_trim['torque'])) ? 'block' : 'none' ?>;">
                                <strong>عزم الدوران:</strong> <span id="torqueDisplay"><?= $default_trim ? htmlspecialchars($default_trim['torque']) : '' ?></span>
                            </li>
                        </ul>
                    </div>

                    <!-- Performance Stats -->
                    <div class="spec-section mb-3" id="performanceSpecsSection">
                        <h6 class="text-secondary"><i class="fas fa-tachometer-alt"></i> الأداء والاستهلاك</h6>
                        <ul class="list-group list-group-flush">
                            <li class="list-group-item" id="accelerationSection" style="display: <?= ($default_trim && !empty($default_trim['acceleration'])) ? 'block' : 'none' ?>;">
                                <strong>التسارع 0-100:</strong> <span id="accelerationDisplay"><?= $default_trim ? htmlspecialchars($default_trim['acceleration']) : '' ?></span>
                            </li>
                            <li class="list-group-item" id="topSpeedSection" style="display: <?= ($default_trim && !empty($default_trim['top_speed'])) ? 'block' : 'none' ?>;">
                                <strong>السرعة القصوى:</strong> <span id="topSpeedDisplay"><?= $default_trim ? htmlspecialchars($default_trim['top_speed']) : '' ?></span>
                            </li>
                            <li class="list-group-item" id="fuelConsumptionSection" style="display: <?= ($default_trim && !empty($default_trim['fuel_consumption'])) ? 'block' : 'none' ?>;">
                                <strong>استهلاك الوقود:</strong> <span id="fuelConsumptionDisplay"><?= $default_trim ? htmlspecialchars($default_trim['fuel_consumption']) : '' ?></span>
                            </li>
                            <li class="list-group-item" id="drivetrainSection" style="display: <?= ($default_trim && !empty($default_trim['drivetrain'])) ? 'block' : 'none' ?>;">
                                <strong>نظام الدفع:</strong> <span id="drivetrainDisplay"><?= $default_trim ? htmlspecialchars($default_trim['drivetrain']) : '' ?></span>
                            </li>
                        </ul>
                    </div>

                    <!-- Body Specs -->
                    <div class="spec-section mb-3" id="bodySpecsSection">
                        <h6 class="text-secondary"><i class="fas fa-car-side"></i> الهيكل والتصميم</h6>
                        <ul class="list-group list-group-flush">
                            <li class="list-group-item" id="seatingCapacitySection" style="display: <?= ($default_trim && !empty($default_trim['seating_capacity'])) ? 'block' : 'none' ?>;">
                                <strong>عدد المقاعد:</strong> <span id="seatingCapacityDisplay"><?= $default_trim ? htmlspecialchars($default_trim['seating_capacity']) : '' ?></span> مقعد
                            </li>
                            <li class="list-group-item" id="bodyTypeSection" style="display: <?= ($default_trim && !empty($default_trim['body_type'])) ? 'block' : 'none' ?>;">
                                <strong>نوع الهيكل:</strong> <span id="bodyTypeDisplay"><?= $default_trim ? htmlspecialchars($default_trim['body_type']) : '' ?></span>
                            </li>
                            <li class="list-group-item" id="exteriorColorSection" style="display: <?= ($default_trim && !empty($default_trim['exterior_color'])) ? 'block' : 'none' ?>;">
                                <strong>اللون الخارجي:</strong> <span id="exteriorColorDisplay"><?= $default_trim ? htmlspecialchars($default_trim['exterior_color']) : '' ?></span>
                            </li>
                            <li class="list-group-item" id="interiorColorSection" style="display: <?= ($default_trim && !empty($default_trim['interior_color'])) ? 'block' : 'none' ?>;">
                                <strong>اللون الداخلي:</strong> <span id="interiorColorDisplay"><?= $default_trim ? htmlspecialchars($default_trim['interior_color']) : '' ?></span>
                            </li>
                        </ul>
                    </div>

                    <!-- PDF Section -->
                    <div class="spec-section mb-3" id="pdfSection" style="display: <?= ($default_trim && !empty($default_trim['tech_specs_pdf'])) ? 'block' : 'none' ?>;">
                        <h6 class="text-secondary"><i class="fas fa-file-pdf"></i> المواصفات الفنية الكاملة</h6>
                        <div class="feature-group mb-2">
                            <a id="pdfDownloadLink" href="uploads/pdfs/<?= $default_trim ? htmlspecialchars($default_trim['tech_specs_pdf']) : '' ?>" target="_blank" class="btn btn-primary">
                                <i class="fas fa-download"></i> تحميل ملف المواصفات (PDF)
                            </a>
                        </div>
                    </div>
                </div>

                <h4 class="mt-4">الوصف</h4>
                <p><?= nl2br(htmlspecialchars($car['description'])) ?></p>

                <div class="d-grid gap-2 mt-4">
                    <a href="visit.php?car_id=<?= $car['id'] ?>" class="btn btn-danger btn-lg">احجز تجربة قيادة</a>
                    <a href="calculator.php?price=<?= $default_trim ? $default_trim['price'] : '0' ?>" id="calculatorLink" class="btn btn-outline-light btn-lg">حساب القسط</a>
                    
                    <!-- Comparison Buttons -->
                    <?php if ($default_trim): ?>
                        <?php 
                        $trim_id = $default_trim['id']; 
                        $is_already_added = in_array($trim_id, $_SESSION['compare_cars']);
                        ?>
                        <a id="compareLink" href="compare.php?action=<?= $is_already_added ? 'remove' : 'add' ?>&trim_id=<?= $trim_id ?>" class="btn <?= $is_already_added ? 'btn-outline-warning' : 'btn-outline-info' ?> btn-lg">
                            <i class="fas <?= $is_already_added ? 'fa-minus-circle' : 'fa-balance-scale' ?>"></i> 
                            <?= $is_already_added ? 'إزالة من المقارنة' : 'إضافة للمقارنة' ?>
                        </a>
                    <?php endif; ?>
                    
                    <?php if (!empty($_SESSION['compare_cars'])): ?>
                        <a href="compare.php" class="btn btn-success btn-lg">
                            <i class="fas fa-eye"></i> عرض المقارنة (<?= count($_SESSION['compare_cars']) ?>)
                        </a>
                    <?php endif; ?>
                </div>
            </div>
        </div>
    </div>
</main>

<script>
function changeMainImage(imageSrc, thumbnailElement) {
    document.getElementById('mainImage').src = imageSrc;
    
    document.querySelectorAll('.thumbnail-img').forEach(img => {
        img.classList.remove('active');
        img.style.border = '2px solid transparent';
    });
    
    thumbnailElement.classList.add('active');
    thumbnailElement.style.border = '2px solid #dc3545';
}

document.addEventListener('DOMContentLoaded', function() {
    const activeThumbnail = document.querySelector('.thumbnail-img.active');
    if (activeThumbnail) {
        activeThumbnail.style.border = '2px solid #dc3545';
    }

    // Dynamic UI Updates based on selected Trim
    const trims = <?php echo json_encode($car_trims); ?>;
    const compareList = <?php echo json_encode($_SESSION['compare_cars']); ?>;
    const trimSelect = document.getElementById('trimSelect');

    if (trimSelect) {
        trimSelect.addEventListener('change', function() {
            const index = this.value;
            const trim = trims[index];

            // 1. Update Price
            document.getElementById('carPriceDisplay').textContent = Number(trim.price).toLocaleString('en-US');

            // 2. Update Basic Specs
            document.getElementById('fuelTypeDisplay').textContent = trim.fuel_type || 'غير محدد';
            document.getElementById('conditionDisplay').textContent = trim.car_condition || 'غير محدد';

            // 3. Update Technical specs
            updateSpecSection('engineCapacitySection', 'engineCapacityDisplay', trim.engine_capacity);
            updateSpecSection('transmissionTypeSection', 'transmissionTypeDisplay', trim.transmission_type);
            updateSpecSection('horsepowerSection', 'horsepowerDisplay', trim.horsepower, ' حصان');
            updateSpecSection('torqueSection', 'torqueDisplay', trim.torque);

            updateSpecSection('accelerationSection', 'accelerationDisplay', trim.acceleration);
            updateSpecSection('topSpeedSection', 'topSpeedDisplay', trim.top_speed);
            updateSpecSection('fuelConsumptionSection', 'fuelConsumptionDisplay', trim.fuel_consumption);
            updateSpecSection('drivetrainSection', 'drivetrainDisplay', trim.drivetrain);

            updateSpecSection('seatingCapacitySection', 'seatingCapacityDisplay', trim.seating_capacity, ' مقعد');
            updateSpecSection('bodyTypeSection', 'bodyTypeDisplay', trim.body_type);
            updateSpecSection('exteriorColorSection', 'exteriorColorDisplay', trim.exterior_color);
            updateSpecSection('interiorColorSection', 'interiorColorDisplay', trim.interior_color);

            // 4. Update PDF
            const pdfSection = document.getElementById('pdfSection');
            const pdfLink = document.getElementById('pdfDownloadLink');
            if (trim.tech_specs_pdf) {
                pdfLink.href = 'uploads/pdfs/' + trim.tech_specs_pdf;
                pdfSection.style.display = 'block';
            } else {
                pdfSection.style.display = 'none';
            }

            // 5. Update Calculator Link
            document.getElementById('calculatorLink').href = 'calculator.php?price=' + trim.price;

            // 6. Update Compare Button
            const compareLink = document.getElementById('compareLink');
            if (compareLink) {
                const trimIdInt = Number(trim.id);
                const isAlreadyAdded = compareList.includes(trimIdInt);
                
                if (isAlreadyAdded) {
                    compareLink.href = 'compare.php?action=remove&trim_id=' + trim.id;
                    compareLink.className = 'btn btn-outline-warning btn-lg';
                    compareLink.innerHTML = '<i class="fas fa-minus-circle"></i> إزالة من المقارنة';
                } else {
                    compareLink.href = 'compare.php?action=add&trim_id=' + trim.id;
                    compareLink.className = 'btn btn-outline-info btn-lg';
                    compareLink.innerHTML = '<i class="fas fa-balance-scale"></i> إضافة للمقارنة';
                }
            }
        });
    }

    function updateSpecSection(sectionId, displayId, value, suffix = '') {
        const section = document.getElementById(sectionId);
        const display = document.getElementById(displayId);
        
        if (value && value !== '0' && value !== 0) {
            display.textContent = value + suffix;
            section.style.display = 'block';
        } else {
            section.style.display = 'none';
        }
    }
});
</script>

<style>
.thumbnail-img:hover {
    opacity: 0.8;
    transform: scale(1.05);
    transition: all 0.3s ease;
}

.video-section {
    background: rgba(255, 255, 255, 0.1);
    padding: 20px;
    border-radius: 10px;
    backdrop-filter: blur(10px);
}

.technical-specs {
    background: rgba(255, 255, 255, 0.05);
    padding: 20px;
    border-radius: 15px;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.spec-section {
    background: rgba(255, 255, 255, 0.03);
    padding: 15px;
    border-radius: 10px;
    border-left: 4px solid var(--primary-color);
}

.spec-section h6 {
    color: #fff;
    margin-bottom: 15px;
    font-weight: 600;
}

.feature-group {
    background: rgba(255, 255, 255, 0.05);
    padding: 10px;
    border-radius: 8px;
    border-left: 3px solid;
}

.feature-group:nth-child(1) {
    border-left-color: #28a745;
}

.feature-group:nth-child(2) {
    border-left-color: #17a2b8;
}

.feature-group:nth-child(3) {
    border-left-color: #ffc107;
}

.list-group-item {
    background: rgba(255, 255, 255, 0.05) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    color: #fff !important;
}

.list-group-item strong {
    color: var(--primary-color);
}
</style>

<?php include 'includes/footer.php'; ?>
© 2026 GrazzMean