Commit technique : reproduit à l'identique l'état non commité de la copie de travail (sécurisation V7.8, CSP à nonce, Session, migration des droits) afin que le travail d'ergonomie qui suit soit isolable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
32 lines
1.0 KiB
PHP
32 lines
1.0 KiB
PHP
<?php
|
||
|
||
declare(strict_types=1);
|
||
|
||
require_once __DIR__ . '/app/autoload.php';
|
||
|
||
use App\Controllers\PageController;
|
||
use App\Core\Security;
|
||
|
||
function runPage(string $method): void
|
||
{
|
||
try {
|
||
$pdo = require __DIR__ . '/app/bootstrap.php';
|
||
$controller = new PageController($pdo);
|
||
if (!method_exists($controller, $method)) {
|
||
throw new RuntimeException('Page inconnue.');
|
||
}
|
||
$controller->{$method}();
|
||
} catch (Throwable $e) {
|
||
http_response_code(500);
|
||
Security::sendHtmlHeaders();
|
||
$message = htmlspecialchars(
|
||
Security::reportThrowable($e, 'Une erreur technique empêche l’affichage de cette page.'),
|
||
ENT_QUOTES,
|
||
'UTF-8'
|
||
);
|
||
echo '<!doctype html><html lang="fr"><meta charset="utf-8"><title>Erreur PTA</title>';
|
||
echo '<body><h1>Impossible de démarrer PTA</h1><p>' . $message . '</p>';
|
||
echo '<p>Contactez l’administrateur de l’application : le détail de l’erreur a été journalisé.</p></body></html>';
|
||
}
|
||
}
|