From 25ff6cd6f8d7b89687f209b6c3cd3f1107b42315 Mon Sep 17 00:00:00 2001 From: Alix JEUDI--LEMOINE Date: Tue, 7 Nov 2023 19:28:10 +0100 Subject: [PATCH] Ajout connexion DB + pseudo dans session + case login/disconnect --- project/src/controller/FrontController.php | 47 ++++++++++++++++++---- project/src/controller/LoginException.php | 7 ++++ 2 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 project/src/controller/LoginException.php diff --git a/project/src/controller/FrontController.php b/project/src/controller/FrontController.php index 850c593..3a052f1 100644 --- a/project/src/controller/FrontController.php +++ b/project/src/controller/FrontController.php @@ -1,23 +1,33 @@ render('accueil.html'); + echo $twig->render('accueil.html', ['dVue' => $dVue]); break; case 'join': echo $twig->render('join.html'); @@ -26,11 +36,33 @@ class FrontController $this->CreateParty(); break; case 'validationFormulaire': - $this->ValidationFormulaire($dVueErreur); + $this->ValidationFormulaire($dVueErreur, $dVue); break; case 'admin': new AdminController(); break; + case 'login': + if(empty($_SESSION) && !isset($_REQUEST['login'])) + echo $twig->render('login.html'); + elseif(isset($_REQUEST['login'])) { + Validation::valUserLogin($_REQUEST['login'], $dVueErreur); + $ug = new UserGateway($con); + if($ug->login($_REQUEST['login'], $_REQUEST['password'])) { + $_SESSION['pseudo'] = $_REQUEST['login']; + header("Location: ."); + } else { + $dVueErreur[] = "Connexion échouée"; + throw new LoginException("Connexion err"); + } + } else + header("Location: ."); + break; + case 'disconnect': + session_unset(); + session_destroy(); + $_SESSION = array(); + header("Location: ."); + break; //mauvaise action default: $dVueErreur[] = "Erreur d'appel php"; @@ -40,6 +72,9 @@ class FrontController } catch (\PDOException $e) { $dVueErreur[] = 'Erreur avec la base de données !'; echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]); + } catch (LoginException $e) { + echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]); + echo $twig->render('login.html'); } catch (\Exception $e2) { $dVueErreur[] = 'Erreur inattendue !'; echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]); @@ -56,7 +91,7 @@ class FrontController echo $twig->render('create.html', ['dVueCreate' => $dVueCreate]); } - public function ValidationFormulaire(array &$dVueErreur) + public function ValidationFormulaire(array &$dVueErreur, array &$dVue) { global $twig; @@ -64,9 +99,7 @@ class FrontController $difficulty = $_POST['difficulty'] ?? ''; \config\Validation::val_form($game, $difficulty, $dVueErreur); - $dVue = [ - 'info' => "Jeu '$game' créé avec la difficulté $difficulty" - ]; + $dVue['info'] = "Jeu '$game' créé avec la difficulté $difficulty"; echo $twig->render('accueil.html', ['dVue' => $dVue, 'dVueErreur' => $dVueErreur]); } diff --git a/project/src/controller/LoginException.php b/project/src/controller/LoginException.php new file mode 100644 index 0000000..20b834b --- /dev/null +++ b/project/src/controller/LoginException.php @@ -0,0 +1,7 @@ +