From 7615dabb928d08a26a477a9640cc742a3c56e7e3 Mon Sep 17 00:00:00 2001 From: tomivt Date: Wed, 13 Nov 2024 18:49:33 +0100 Subject: [PATCH] Add Login message error --- .idea/workspace.xml | 7 ++++--- public/styles/styleSignin.css | 24 +++++++++++++++++++++++- src/Controleur/FrontControler.php | 5 +++-- src/Controleur/VisitorControler.php | 26 +++++++++++++++++++++----- src/Gateway/userGateway.php | 4 ++-- src/Model/userModel.php | 8 ++++---- vue/templates/login.html.twig | 7 +++++-- vue/templates/signin.html.twig | 29 ++++++++++++++++------------- 8 files changed, 78 insertions(+), 32 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 487aa5c..2527dab 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -6,10 +6,11 @@ - + - + + @@ -126,7 +127,7 @@ - + diff --git a/public/styles/styleSignin.css b/public/styles/styleSignin.css index e0a7780..95d2128 100644 --- a/public/styles/styleSignin.css +++ b/public/styles/styleSignin.css @@ -117,4 +117,26 @@ body.light-mode .btn{ body.light-mode .champ{ background-color: #fff1f1; border: 1px solid #000000; -} \ No newline at end of file +} + + +body.dark-mode .connectAccount{ + margin-top: 5%; + margin-bottom: 5%; + font-size: 13px; + text-align: center; + padding-top: 1%; + color: white; + border: 1px solid transparent; + font-family: "Lemon", serif; +} + +body.light-mode .connectAccount{ + margin-top: 5%; + margin-bottom: 5%; + font-size: 13px; + text-align: center; + padding-top: 1%; + color: black; + font-family: "Lemon", serif; +} diff --git a/src/Controleur/FrontControler.php b/src/Controleur/FrontControler.php index 3445bbd..ac215d9 100644 --- a/src/Controleur/FrontControler.php +++ b/src/Controleur/FrontControler.php @@ -16,7 +16,7 @@ Class FrontControler{ $this->co=$co; - $this->listAction = ['visitor' => array('accueil','search','quote','login','signin','quiz','valid'), + $this->listAction = ['visitor' => array('accueil','search','quote','login','signin','quiz','validlogin','validsignin'), 'user' => array('quiz','commentary','favorite','logout'), 'admin' => array('null')]; @@ -38,7 +38,8 @@ Class FrontControler{ $router->map('GET|POST', '/quote/[i:idQuote]?', 'VisitorControler'); $router->map('GET|POST', '/login', 'VisitorControler'); $router->map('GET|POST', '/signin', 'VisitorControler'); - $router->map('GET|POST', '/valid', 'VisitorControler'); + $router->map('GET|POST', '/validsignin', 'VisitorControler'); + $router->map('GET|POST', '/validlogin', 'VisitorControler'); $router->map('GET|POST', '/quiz/[i:id]?', 'QuizController'); $match = $router->match(); diff --git a/src/Controleur/VisitorControler.php b/src/Controleur/VisitorControler.php index 40a3c9c..a2873d6 100644 --- a/src/Controleur/VisitorControler.php +++ b/src/Controleur/VisitorControler.php @@ -43,9 +43,12 @@ Class VisitorControler { case "signin": $this -> visitorSignIn(); break; - case "valid": + case "validsignin": $this -> toSignIn(); break; + case "validlogin": + $this -> toLogIn(); + break; default: break; } @@ -91,11 +94,24 @@ Class VisitorControler { if (password_verify($mdp, $user->getPassword())) { $_SESSION['user'] = $pseudo; + $_SESSION['role'] = 'user'; header("Location: /"); + exit(); + }else + { + global $twig; + $this -> errors = ["Identifiant ou mot de passe incorrect"]; + echo $twig -> render("login.html.twig", ['error' => $this -> errors[0]]); + exit(); } - else die(); /* Afficher Erreur Mot de passe */ } - else die(); /* Afficher Utilisateur non trouvé */ + else + { + global $twig; + $this -> errors = ["Identifiant ou mot de passe incorrect"]; + echo $twig -> render("login.html.twig", ['error' => $this -> errors[0]]); + exit(); + } } } @@ -141,12 +157,12 @@ Class VisitorControler { $isUserAlreadyUsed = $this -> mdl -> getUsername($pseudo); $isEmailAlreadyUsed = $this -> mdl -> getEmail($email); - if ($isUserAlreadyUsed) { + if ($isUserAlreadyUsed and !$isEmailAlreadyUsed) { $this->errors[0] = "Pseudo déjà utilisé"; echo $twig->render("signin.html.twig", ['error' => $this->errors]); exit(); } - else if ($isEmailAlreadyUsed) { + else if ($isEmailAlreadyUsed and !$isUserAlreadyUsed) { $this->errors[1] = "Email déjà utilisé"; echo $twig->render("signin.html.twig", ['error' => $this->errors]); exit(); diff --git a/src/Gateway/userGateway.php b/src/Gateway/userGateway.php index 236b89f..995a6c7 100644 --- a/src/Gateway/userGateway.php +++ b/src/Gateway/userGateway.php @@ -67,8 +67,8 @@ Class UserGateway{ } public function findEmail(string $email):array{ - $query = 'SELECT * FROM Users WHERE email= :email'; - $this->con->executeQuery($query, array(':username'=>array($email, PDO::PARAM_STR))); + $query = 'SELECT * FROM Users WHERE email = :email'; + $this->con->executeQuery($query, array(':email'=>array($email, PDO::PARAM_STR))); return $this->con->getResults(); } diff --git a/src/Model/userModel.php b/src/Model/userModel.php index 9a20d23..75e3f6c 100644 --- a/src/Model/userModel.php +++ b/src/Model/userModel.php @@ -69,16 +69,16 @@ use Gateway\UserGateway; public function getEmail(string $email) : ?UserEntity { - $res = $this->gateway->findUsername($email); + $res = $this->gateway->findEmail($email); if ($res) return new UserEntity( $res[0]['id_user'], $res[0]['username'], $res[0]['pssword'], $res[0]['email'], - $res[0]['imgPrfl'], - $res[0]['isAdmin'], - $res[0]['date'] + $res[0]['img_prfl'], + $res[0]['is_admin'], + $res[0]['creation'] ); return null; } diff --git a/vue/templates/login.html.twig b/vue/templates/login.html.twig index 1012770..fb5869e 100644 --- a/vue/templates/login.html.twig +++ b/vue/templates/login.html.twig @@ -27,13 +27,16 @@

▶ Connexion ◀

-
+

Identifiant *

Mot de passe *

+ {% if error is defined and error is not empty %} +

{{ error }}

+ {% endif %}

Vous n'avez de compte?

S'incrire @@ -41,7 +44,7 @@
- +
diff --git a/vue/templates/signin.html.twig b/vue/templates/signin.html.twig index 3e73db4..715eda3 100644 --- a/vue/templates/signin.html.twig +++ b/vue/templates/signin.html.twig @@ -26,44 +26,47 @@

▶ S'inscrire ◀

-
+