From 20e1d288035a274b48f0d2d26f547ad15e99761d Mon Sep 17 00:00:00 2001 From: polo Date: Sat, 2 Aug 2025 04:09:32 +0200 Subject: =?UTF-8?q?r=C3=A9organisation=201:=20d=C3=A9placement=20de=20truc?= =?UTF-8?q?s=20de=20index.php=20=C3=A0=20post.php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/index.php | 32 +++++++++----------------------- src/controller/installation.php | 1 + src/controller/post.php | 17 +++++++++++++++++ 3 files changed, 27 insertions(+), 23 deletions(-) diff --git a/public/index.php b/public/index.php index bd3eec7..d05e799 100644 --- a/public/index.php +++ b/public/index.php @@ -20,10 +20,12 @@ phpDependancies(); // $entityManager require '../src/model/doctrine-bootstrap.php'; // isDevMode est sur "true", DSN à adapter +// générateur de liens URL::setProtocol(Config::$protocol); // utile si port autre que 80 ou 443 URL::setPort(Config::$port); URL::setHost($_SERVER['HTTP_HOST'] . Config::$index_path); +// session //require('controller/Session.php'); ini_set('session.cookie_samesite', 'Strict'); ini_set('session.cookie_httponly', 'On'); @@ -41,41 +43,25 @@ require '../src/controller/password.php'; existUsers($entityManager); // si la table user est vide, on en crée un -/* -- partie 2: affichage d'une page ou traitement d'un POST -- */ +/* -- partie 2: contrôleurs -- */ -// navigation avec les GET +// navigation avec des GET define('CURRENT_PAGE', !empty($_GET['page']) ? htmlspecialchars($_GET['page']) : 'accueil'); - -// traitement des POST (formulaires et AJAX) -require '../src/controller/post.php'; - -// id des articles $id = ''; if(!empty($_GET['id'])) { $id = htmlspecialchars($_GET['id']); // nettoyage qui n'abime pas les id du genre "n16" } -if(isset($_GET['action']) && $_GET['action'] === 'deconnexion') -{ - disconnect($entityManager); -} -elseif(isset($_GET['action']) && $_GET['action'] === 'modif_mdp') -{ - changePassword($entityManager); -} -elseif($_SESSION['admin'] && isset($_GET['page']) && isset($_GET['action']) && $_GET['action'] === 'modif_page' - && $_GET['page'] !== 'connexion' && $_GET['page'] !== 'article' && $_GET['page'] !== 'nouvelle_page' && $_GET['page'] !== 'menu_chemins') -{ - // les contrôles de la 2è ligne devraient utiliser un tableau - MainBuilder::$modif_mode = true; -} +/* -- contrôleurs qui traitent les POST (formulaires ou AJAX) -- */ +require '../src/controller/post.php'; -// contrôleur principal +/* -- affichage d'une page -- */ +// contrôleur accédant au modèle $director = new Director($entityManager, true); $director->makeRootNode($id); $node = $director->getNode(); -// vues +// contrôleur principal des vues $view_builder = new ViewBuilder($node); echo $view_builder->render(); // et voilà! \ No newline at end of file diff --git a/src/controller/installation.php b/src/controller/installation.php index acb87f1..d9ea44b 100644 --- a/src/controller/installation.php +++ b/src/controller/installation.php @@ -33,6 +33,7 @@ function phpDependancies() } } +// inutilisée pour l'instant function installation(): void { /* -- droits des fichiers et dossiers -- */ diff --git a/src/controller/post.php b/src/controller/post.php index bcafe6f..5d9500b 100644 --- a/src/controller/post.php +++ b/src/controller/post.php @@ -9,6 +9,23 @@ use App\Entity\Page; use App\Entity\Image; use Doctrine\Common\Collections\ArrayCollection; +if(isset($_GET['action']) && $_GET['action'] === 'deconnexion') +{ + disconnect($entityManager); +} +elseif(isset($_GET['action']) && $_GET['action'] === 'modif_mdp') +{ + changePassword($entityManager); +} +elseif($_SESSION['admin'] && isset($_GET['page']) && isset($_GET['action']) && $_GET['action'] === 'modif_page' + && $_GET['page'] !== 'connexion' && $_GET['page'] !== 'article' && $_GET['page'] !== 'nouvelle_page' && $_GET['page'] !== 'menu_chemins') +{ + // les contrôles de la 2è ligne devraient utiliser un tableau + MainBuilder::$modif_mode = true; +} + + +/* -- html form -- */ if($_SERVER['REQUEST_METHOD'] === 'POST'){ // POST ordinaires non admin -- cgit v1.2.3