| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/arni-solutions.de/web/test/admin/ |
Upload File : |
<?php
declare(strict_types=1);
require __DIR__ . '/../includes/bootstrap.php';
require_admin();
$paths = storage_paths();
$files = glob($paths['submissions_dir'] . '/*.json') ?: [];
$rows = [];
foreach ($files as $file) {
$data = read_json_file($file, []);
if (!$data) {
continue;
}
$rows[] = [
'test' => (string)($data['meta']['test_title'] ?? ''),
'slug' => (string)($data['meta']['slug'] ?? ''),
'name' => (string)($data['participant']['name'] ?? ''),
'email' => (string)($data['participant']['email'] ?? ''),
'result' => (string)($data['result']['winner']['title'] ?? ''),
'updated_at' => (string)($data['meta']['updated_at'] ?? ''),
'file' => basename($file),
];
}
usort($rows, static function (array $a, array $b): int {
return strcmp($b['updated_at'], $a['updated_at']);
});
render_header('Teilnahmen');
?>
<div class="d-flex justify-content-between align-items-center mb-4">
<div>
<h1 class="h2 mb-1">Gespeicherte Teilnahmen</h1>
<p class="text-muted mb-0">Übersicht aller ausgefüllten Tests aus den Textdateien.</p>
</div>
<a class="btn btn-outline-secondary" href="dashboard.php">Zurück</a>
</div>
<div class="card card-soft">
<div class="card-body p-0">
<?php if ($rows === []): ?>
<div class="p-4">Noch keine Teilnahmen vorhanden.</div>
<?php else: ?>
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Test</th>
<th>Name</th>
<th>E-Mail</th>
<th>Ergebnis</th>
<th>Stand</th>
<th>Datei</th>
</tr>
</thead>
<tbody>
<?php foreach ($rows as $row): ?>
<tr>
<td><?= e($row['test']) ?><br><small class="text-muted"><?= e($row['slug']) ?></small></td>
<td><?= e($row['name']) ?></td>
<td><?= e($row['email']) ?></td>
<td><?= e($row['result']) ?></td>
<td><?= e($row['updated_at']) ?></td>
<td><code><?= e($row['file']) ?></code></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php endif; ?>
</div>
</div>
<?php render_footer(); ?>