Fix admin form actions and redirects: replace & with ? for query parameters

This commit is contained in:
2026-07-21 12:45:58 +02:00
parent 0ccd89824f
commit 064e905f31
9 changed files with 31 additions and 31 deletions
+1 -1
View File
@@ -20,7 +20,7 @@
</div> </div>
<div class="card-footer text-end"> <div class="card-footer text-end">
<a href="/admin/content&dir=<?= urlencode(dirname($dir) === '.' ? '' : dirname($dir)) ?>" class="btn btn-secondary">Annuleren</a> <a href="/admin/content?dir=<?= urlencode(dirname($dir) === '.' ? '' : dirname($dir)) ?>" class="btn btn-secondary">Annuleren</a>
<button type="submit" class="btn btn-primary"><i class="bi bi-check-lg"></i> Opslaan</button> <button type="submit" class="btn btn-primary"><i class="bi bi-check-lg"></i> Opslaan</button>
</div> </div>
</form> </form>
+2 -2
View File
@@ -2,7 +2,7 @@
<div class="card shadow-sm"> <div class="card shadow-sm">
<div class="card-body"> <div class="card-body">
<form method="POST" action="/admin/content-edit&file=<?= urlencode($file) ?>" id="editor-form"> <form method="POST" action="/admin/content-edit?file=<?= urlencode($file) ?>" id="editor-form">
<input type="hidden" name="csrf_token" value="<?= $csrf ?>"> <input type="hidden" name="csrf_token" value="<?= $csrf ?>">
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-4"> <div class="col-md-4">
@@ -48,7 +48,7 @@
<button type="submit" class="btn btn-primary"> <button type="submit" class="btn btn-primary">
<i class="bi bi-check-lg"></i> Opslaan <i class="bi bi-check-lg"></i> Opslaan
</button> </button>
<a href="/admin/content&dir=<?= urlencode(dirname($file)) ?>" class="btn btn-outline-secondary" id="back-btn">Terug</a> <a href="/admin/content?dir=<?= urlencode(dirname($file)) ?>" class="btn btn-outline-secondary" id="back-btn">Terug</a>
</div> </div>
</form> </form>
</div> </div>
+1 -1
View File
@@ -28,7 +28,7 @@
</div> </div>
<div class="card-footer text-end"> <div class="card-footer text-end">
<a href="/admin/content&dir=<?= urlencode(dirname($item) === '.' ? '' : dirname($item)) ?>" class="btn btn-secondary">Annuleren</a> <a href="/admin/content?dir=<?= urlencode(dirname($item) === '.' ? '' : dirname($item)) ?>" class="btn btn-secondary">Annuleren</a>
<button type="submit" class="btn btn-primary"><i class="bi bi-check-lg"></i> Verplaatsen</button> <button type="submit" class="btn btn-primary"><i class="bi bi-check-lg"></i> Verplaatsen</button>
</div> </div>
</form> </form>
+2 -2
View File
@@ -2,7 +2,7 @@
<div class="card shadow-sm"> <div class="card shadow-sm">
<div class="card-body"> <div class="card-body">
<form method="POST" action="/admin/content-new&dir=<?= urlencode($dir ?? '') ?>" id="editor-form" data-new-page> <form method="POST" action="/admin/content-new?dir=<?= urlencode($dir ?? '') ?>" id="editor-form" data-new-page>
<input type="hidden" name="csrf_token" value="<?= $csrf ?>"> <input type="hidden" name="csrf_token" value="<?= $csrf ?>">
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-8"> <div class="col-md-8">
@@ -55,7 +55,7 @@
<button type="submit" class="btn btn-primary" id="content-create-btn" disabled> <button type="submit" class="btn btn-primary" id="content-create-btn" disabled>
<i class="bi bi-check-lg"></i> Aanmaken <i class="bi bi-check-lg"></i> Aanmaken
</button> </button>
<a href="/admin/content&dir=<?= urlencode($dir ?? '') ?>" class="btn btn-outline-secondary" id="back-btn">Terug</a> <a href="/admin/content?dir=<?= urlencode($dir ?? '') ?>" class="btn btn-outline-secondary" id="back-btn">Terug</a>
</div> </div>
</form> </form>
</div> </div>
+12 -12
View File
@@ -7,7 +7,7 @@
<button type="button" class="btn btn-outline-secondary btn-sm me-1" data-bs-toggle="modal" data-bs-target="#createDirModal"> <button type="button" class="btn btn-outline-secondary btn-sm me-1" data-bs-toggle="modal" data-bs-target="#createDirModal">
<i class="bi bi-folder-plus"></i> Nieuwe map <i class="bi bi-folder-plus"></i> Nieuwe map
</button> </button>
<a href="/admin/content-new&dir=<?= urlencode($subdir) ?>" class="btn btn-primary btn-sm"> <a href="/admin/content-new?dir=<?= urlencode($subdir) ?>" class="btn btn-primary btn-sm">
<i class="bi bi-plus-lg"></i> Nieuw bestand <i class="bi bi-plus-lg"></i> Nieuw bestand
</a> </a>
</div> </div>
@@ -16,7 +16,7 @@
<div class="collapse mb-4" id="uploadForm"> <div class="collapse mb-4" id="uploadForm">
<div class="card shadow-sm"> <div class="card shadow-sm">
<div class="card-body"> <div class="card-body">
<form method="POST" action="/admin/content&dir=<?= urlencode($subdir) ?>" enctype="multipart/form-data"> <form method="POST" action="/admin/content?dir=<?= urlencode($subdir) ?>" enctype="multipart/form-data">
<input type="hidden" name="csrf_token" value="<?= $csrf ?>"> <input type="hidden" name="csrf_token" value="<?= $csrf ?>">
<div class="mb-3"> <div class="mb-3">
<label for="file" class="form-label">Bestanden selecteren</label> <label for="file" class="form-label">Bestanden selecteren</label>
@@ -48,7 +48,7 @@
<?php if ($crumbPath === $subdir): ?> <?php if ($crumbPath === $subdir): ?>
<?= htmlspecialchars($crumb) ?> <?= htmlspecialchars($crumb) ?>
<?php else: ?> <?php else: ?>
<a href="/admin/content&dir=<?= urlencode($crumbPath) ?>"><?= htmlspecialchars($crumb) ?></a> <a href="/admin/content?dir=<?= urlencode($crumbPath) ?>"><?= htmlspecialchars($crumb) ?></a>
<?php endif; ?> <?php endif; ?>
</li> </li>
<?php endforeach; ?> <?php endforeach; ?>
@@ -76,11 +76,11 @@
<tr> <tr>
<td> <td>
<?php if ($item['is_dir']): ?> <?php if ($item['is_dir']): ?>
<a href="/admin/content&dir=<?= urlencode($item['path']) ?>"> <a href="/admin/content?dir=<?= urlencode($item['path']) ?>">
<i class="bi bi-folder-fill text-warning"></i> <?= htmlspecialchars($item['name']) ?> <i class="bi bi-folder-fill text-warning"></i> <?= htmlspecialchars($item['name']) ?>
</a> </a>
<?php else: ?> <?php else: ?>
<a href="/admin/content-edit&file=<?= urlencode($item['path']) ?>"> <a href="/admin/content-edit?file=<?= urlencode($item['path']) ?>">
<?php <?php
$icon = match($item['extension']) { $icon = match($item['extension']) {
'md' => 'bi-file-text text-primary', 'md' => 'bi-file-text text-primary',
@@ -104,26 +104,26 @@
<td class="text-muted"><?= $item['modified'] ?></td> <td class="text-muted"><?= $item['modified'] ?></td>
<td> <td>
<?php if ($item['is_dir']): ?> <?php if ($item['is_dir']): ?>
<a href="/admin/content-dir-rename&dir=<?= urlencode($item['path']) ?>" class="btn btn-sm btn-outline-secondary" title="Hernoemen"> <a href="/admin/content-dir-rename?dir=<?= urlencode($item['path']) ?>" class="btn btn-sm btn-outline-secondary" title="Hernoemen">
<i class="bi bi-pencil"></i> <i class="bi bi-pencil"></i>
</a> </a>
<a href="/admin/content-move&item=<?= urlencode($item['path']) ?>" class="btn btn-sm btn-outline-info" title="Verplaatsen"> <a href="/admin/content-move?item=<?= urlencode($item['path']) ?>" class="btn btn-sm btn-outline-info" title="Verplaatsen">
<i class="bi bi-arrows-move"></i> <i class="bi bi-arrows-move"></i>
</a> </a>
<form method="POST" action="/admin/content-dir-delete&dir=<?= urlencode($item['path']) ?>" class="d-inline" onsubmit="return confirm('Weet je zeker dat je deze map wilt verwijderen? De map moet leeg zijn.')"> <form method="POST" action="/admin/content-dir-delete?dir=<?= urlencode($item['path']) ?>" class="d-inline" onsubmit="return confirm('Weet je zeker dat je deze map wilt verwijderen? De map moet leeg zijn.')">
<input type="hidden" name="csrf_token" value="<?= $csrf ?>"> <input type="hidden" name="csrf_token" value="<?= $csrf ?>">
<button type="submit" class="btn btn-sm btn-outline-danger" title="Verwijderen"> <button type="submit" class="btn btn-sm btn-outline-danger" title="Verwijderen">
<i class="bi bi-trash"></i> <i class="bi bi-trash"></i>
</button> </button>
</form> </form>
<?php else: ?> <?php else: ?>
<a href="/admin/content-edit&file=<?= urlencode($item['path']) ?>" class="btn btn-sm btn-outline-primary" title="Bewerken"> <a href="/admin/content-edit?file=<?= urlencode($item['path']) ?>" class="btn btn-sm btn-outline-primary" title="Bewerken">
<i class="bi bi-pencil"></i> <i class="bi bi-pencil"></i>
</a> </a>
<a href="/admin/content-move&item=<?= urlencode($item['path']) ?>" class="btn btn-sm btn-outline-info" title="Verplaatsen"> <a href="/admin/content-move?item=<?= urlencode($item['path']) ?>" class="btn btn-sm btn-outline-info" title="Verplaatsen">
<i class="bi bi-arrows-move"></i> <i class="bi bi-arrows-move"></i>
</a> </a>
<form method="POST" action="/admin/content-delete&file=<?= urlencode($item['path']) ?>" class="d-inline" onsubmit="return confirm('Weet je zeker dat je dit bestand wilt verwijderen?')"> <form method="POST" action="/admin/content-delete?file=<?= urlencode($item['path']) ?>" class="d-inline" onsubmit="return confirm('Weet je zeker dat je dit bestand wilt verwijderen?')">
<input type="hidden" name="csrf_token" value="<?= $csrf ?>"> <input type="hidden" name="csrf_token" value="<?= $csrf ?>">
<button type="submit" class="btn btn-sm btn-outline-danger" title="Verwijderen"> <button type="submit" class="btn btn-sm btn-outline-danger" title="Verwijderen">
<i class="bi bi-trash"></i> <i class="bi bi-trash"></i>
@@ -143,7 +143,7 @@
<div class="modal fade" id="createDirModal" tabindex="-1"> <div class="modal fade" id="createDirModal" tabindex="-1">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<form method="POST" action="/admin/content-dir-create&dir=<?= urlencode($subdir) ?>"> <form method="POST" action="/admin/content-dir-create?dir=<?= urlencode($subdir) ?>">
<input type="hidden" name="csrf_token" value="<?= $csrf ?>"> <input type="hidden" name="csrf_token" value="<?= $csrf ?>">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title"><i class="bi bi-folder-plus"></i> Nieuwe map aanmaken</h5> <h5 class="modal-title"><i class="bi bi-folder-plus"></i> Nieuwe map aanmaken</h5>
+1 -1
View File
@@ -7,7 +7,7 @@
<div class="card shadow-sm"> <div class="card shadow-sm">
<div class="card-body"> <div class="card-body">
<form method="POST" action="/admin/plugins-edit&plugin=<?= urlencode($pluginName) ?>" id="editor-form"> <form method="POST" action="/admin/plugins-edit?plugin=<?= urlencode($pluginName) ?>" id="editor-form">
<input type="hidden" name="csrf_token" value="<?= $csrf ?>"> <input type="hidden" name="csrf_token" value="<?= $csrf ?>">
<div class="d-flex justify-content-between align-items-center mb-2"> <div class="d-flex justify-content-between align-items-center mb-2">
<span class="badge bg-secondary">PHP</span> <span class="badge bg-secondary">PHP</span>
+4 -4
View File
@@ -113,23 +113,23 @@
<div class="mt-3 d-flex justify-content-between align-items-center"> <div class="mt-3 d-flex justify-content-between align-items-center">
<div class="btn-group btn-group-sm"> <div class="btn-group btn-group-sm">
<?php if ($plugin['has_main']): ?> <?php if ($plugin['has_main']): ?>
<a href="/admin/plugins-edit&plugin=<?= urlencode($plugin['name']) ?>" class="btn btn-outline-secondary" title="Bewerken"> <a href="/admin/plugins-edit?plugin=<?= urlencode($plugin['name']) ?>" class="btn btn-outline-secondary" title="Bewerken">
<i class="bi bi-pencil"></i> <i class="bi bi-pencil"></i>
</a> </a>
<?php endif; ?> <?php endif; ?>
<form method="POST" action="/admin/plugins-toggle&plugin=<?= urlencode($plugin['name']) ?>" class="d-inline"> <form method="POST" action="/admin/plugins-toggle?plugin=<?= urlencode($plugin['name']) ?>" class="d-inline">
<input type="hidden" name="csrf_token" value="<?= $csrf ?>"> <input type="hidden" name="csrf_token" value="<?= $csrf ?>">
<button type="submit" class="btn btn-sm <?= $plugin['viewable'] ? 'btn-outline-warning' : 'btn-outline-success' ?>" title="<?= $plugin['viewable'] ? 'Verbergen' : 'Tonen' ?>"> <button type="submit" class="btn btn-sm <?= $plugin['viewable'] ? 'btn-outline-warning' : 'btn-outline-success' ?>" title="<?= $plugin['viewable'] ? 'Verbergen' : 'Tonen' ?>">
<i class="bi <?= $plugin['viewable'] ? 'bi-eye-slash' : 'bi-eye' ?>"></i> <?= $plugin['viewable'] ? 'Verberg' : 'Toon' ?> <i class="bi <?= $plugin['viewable'] ? 'bi-eye-slash' : 'bi-eye' ?>"></i> <?= $plugin['viewable'] ? 'Verberg' : 'Toon' ?>
</button> </button>
</form> </form>
<?php if ($plugin['has_config']): ?> <?php if ($plugin['has_config']): ?>
<a href="/admin/plugins-config&plugin=<?= urlencode($plugin['name']) ?>" class="btn btn-outline-primary" title="Configureren"> <a href="/admin/plugins-config?plugin=<?= urlencode($plugin['name']) ?>" class="btn btn-outline-primary" title="Configureren">
<i class="bi bi-gear"></i> <i class="bi bi-gear"></i>
</a> </a>
<?php endif; ?> <?php endif; ?>
</div> </div>
<form method="POST" action="/admin/plugins-delete&plugin=<?= urlencode($plugin['name']) ?>" class="d-inline" onsubmit="return confirm('Weet je zeker dat je de plugin &#39;<?= htmlspecialchars($plugin['name']) ?>&#39; wilt verwijderen? Alle bestanden worden permanent verwijderd.')"> <form method="POST" action="/admin/plugins-delete?plugin=<?= urlencode($plugin['name']) ?>" class="d-inline" onsubmit="return confirm('Weet je zeker dat je de plugin &#39;<?= htmlspecialchars($plugin['name']) ?>&#39; wilt verwijderen? Alle bestanden worden permanent verwijderd.')">
<input type="hidden" name="csrf_token" value="<?= $csrf ?>"> <input type="hidden" name="csrf_token" value="<?= $csrf ?>">
<button type="submit" class="btn btn-sm btn-outline-danger" title="Verwijderen"> <button type="submit" class="btn btn-sm btn-outline-danger" title="Verwijderen">
<i class="bi bi-trash"></i> <i class="bi bi-trash"></i>
+1 -1
View File
@@ -233,7 +233,7 @@
</div> </div>
<div class="d-flex gap-2"> <div class="d-flex gap-2">
<a href="/admin/theme&edit=<?= urlencode($themeName) ?>" class="btn btn-outline-primary btn-sm"> <a href="/admin/theme?edit=<?= urlencode($themeName) ?>" class="btn btn-outline-primary btn-sm">
<i class="bi bi-pencil"></i> Bewerken <i class="bi bi-pencil"></i> Bewerken
</a> </a>
<?php if ($themeName !== $activeTheme): ?> <?php if ($themeName !== $activeTheme): ?>
+7 -7
View File
@@ -405,7 +405,7 @@ function handleContentNew(AdminAuth $auth, array $config): void
} }
file_put_contents($filePath, $content); file_put_contents($filePath, $content);
header('Location: /admin/content&dir=' . urlencode($dir)); header('Location: /admin/content?dir=' . urlencode($dir));
exit; exit;
} }
} }
@@ -454,7 +454,7 @@ function handleContentDelete(AdminAuth $auth, array $config): void
} }
$dir = dirname($file); $dir = dirname($file);
header('Location: /admin/content&dir=' . urlencode($dir === '.' ? '' : $dir)); header('Location: /admin/content?dir=' . urlencode($dir === '.' ? '' : $dir));
exit; exit;
} }
@@ -470,7 +470,7 @@ function handleContentDirCreate(AdminAuth $auth, array $config): void
$subdir = str_replace(['../', '..\\'], '', $subdir); $subdir = str_replace(['../', '..\\'], '', $subdir);
if (!$auth->verifyCsrf($_POST['csrf_token'] ?? '')) { if (!$auth->verifyCsrf($_POST['csrf_token'] ?? '')) {
header('Location: /admin/content&dir=' . urlencode($subdir)); header('Location: /admin/content?dir=' . urlencode($subdir));
exit; exit;
} }
@@ -483,7 +483,7 @@ function handleContentDirCreate(AdminAuth $auth, array $config): void
} }
} }
header('Location: /admin/content&dir=' . urlencode($subdir)); header('Location: /admin/content?dir=' . urlencode($subdir));
exit; exit;
} }
@@ -518,7 +518,7 @@ function handleContentDirRename(AdminAuth $auth, array $config): void
} }
$parentRelative = dirname($dir); $parentRelative = dirname($dir);
header('Location: /admin/content&dir=' . urlencode($parentRelative === '.' ? '' : $parentRelative)); header('Location: /admin/content?dir=' . urlencode($parentRelative === '.' ? '' : $parentRelative));
exit; exit;
} }
@@ -560,7 +560,7 @@ function handleContentMove(AdminAuth $auth, array $config): void
} }
$parentRelative = is_file($fullPath) ? dirname($item) : dirname($item); $parentRelative = is_file($fullPath) ? dirname($item) : dirname($item);
header('Location: /admin/content&dir=' . urlencode($parentRelative === '.' ? '' : $parentRelative)); header('Location: /admin/content?dir=' . urlencode($parentRelative === '.' ? '' : $parentRelative));
exit; exit;
} }
@@ -598,7 +598,7 @@ function handleContentDirDelete(AdminAuth $auth, array $config): void
} }
$parentDir = dirname($dir); $parentDir = dirname($dir);
header('Location: /admin/content&dir=' . urlencode($parentDir === '.' ? '' : $parentDir)); header('Location: /admin/content?dir=' . urlencode($parentDir === '.' ? '' : $parentDir));
exit; exit;
} }