From a63a94e6bae5ca0b026fc13abca602577be2aeb8 Mon Sep 17 00:00:00 2001 From: Antoine Jourdain Date: Sun, 19 Nov 2023 17:22:04 +0100 Subject: [PATCH 1/2] Fix mdp invalide --- Project/php/controller/FrontController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/Project/php/controller/FrontController.php b/Project/php/controller/FrontController.php index b2597d3..1467b2f 100755 --- a/Project/php/controller/FrontController.php +++ b/Project/php/controller/FrontController.php @@ -113,6 +113,7 @@ class FrontController $login = strip_tags($_POST['logemail']); $password = strip_tags($_POST['logpass']); $user = $model->connection($login, $password); + if ($user == null) throw new Exception("mot de passe invalide"); $this->home(); } From c38194573bcd60f28fe4be22efa9681a32ee5e87 Mon Sep 17 00:00:00 2001 From: "anthony.richard" Date: Sun, 19 Nov 2023 17:51:29 +0100 Subject: [PATCH 2/2] fix login --- Project/php/controller/FrontController.php | 11 ++++------- Project/php/gateway/UserGateway.php | 17 +++-------------- Project/php/model/AbsModel.php | 5 +++++ Project/php/model/MdlStudent.php | 4 ---- 4 files changed, 12 insertions(+), 25 deletions(-) diff --git a/Project/php/controller/FrontController.php b/Project/php/controller/FrontController.php index 1467b2f..97c0877 100755 --- a/Project/php/controller/FrontController.php +++ b/Project/php/controller/FrontController.php @@ -55,12 +55,12 @@ class FrontController case 'disconnect': $this->disconnect(); break; + case 'quiz': $this->quiz(); break; default : - if ($id != null && !$this->checkIdExist($id)) throw new Exception("identifiant invalide"); if ($target == null) throw new Exception("pas de target"); if (isset($_SESSION['login']) && isset($_SESSION['roles'])) { @@ -112,16 +112,15 @@ class FrontController $model = new MdlStudent(); $login = strip_tags($_POST['logemail']); $password = strip_tags($_POST['logpass']); + if (!$this->checkLoginExist($login)) throw new Exception(("login invalide")); $user = $model->connection($login, $password); if ($user == null) throw new Exception("mot de passe invalide"); $this->home(); } - public function checkIdExist(int $id):bool - { + public function checkLoginExist(string $login): bool { $mdl = new MdlStudent(); - $res = $mdl->checkIdExist($id); - return $res; + return $mdl->checkLoginExist($login); } public function disconnect(): void { @@ -133,6 +132,4 @@ class FrontController $ctrl = new StudentController(); $ctrl->quiz(); } - - } \ No newline at end of file diff --git a/Project/php/gateway/UserGateway.php b/Project/php/gateway/UserGateway.php index 1bff787..b75b6f9 100755 --- a/Project/php/gateway/UserGateway.php +++ b/Project/php/gateway/UserGateway.php @@ -125,6 +125,7 @@ class UserGateway extends AbsGateway $args = array(':id' => array($id, PDO::PARAM_INT)); $this->con->executeQuery($query, $args); $results = $this->con->getResults(); + if (empty($results)) return null; return new User($results[0]['id'], $results[0]['password'], $results[0]['email'], $results[0]['name'], $results[0]['surname'], $results[0]['nickname'], $results[0]['image'], $results[0]['extraTime'], $results[0]['groupID'], $this->getRoles($results[0]['id'])); } catch(PDOException $e ){ @@ -159,12 +160,13 @@ class UserGateway extends AbsGateway } } - public function findUserByEmail(string $email) : User{ + public function findUserByEmail(string $email){ try { $query = "SELECT * FROM User_ WHERE email=:email"; $args = array(':email' => array($email, PDO::PARAM_STR)); $this->con->executeQuery($query, $args); $results = $this->con->getResults(); + if (empty($results)) return null; return new User($results[0]['id'], $results[0]['password'], $results[0]['email'], $results[0]['name'], $results[0]['surname'], $results[0]['nickname'], $results[0]['image'], $results[0]['extraTime'], $results[0]['groupID'], $this->getRoles($results[0]['id'])); } catch(PDOException $e ){ @@ -296,17 +298,4 @@ class UserGateway extends AbsGateway throw new Exception($e->getMessage()); } } - public function checkIdExist(int $id): bool { - $query = "SELECT COUNT(*) AS count FROM User_ WHERE id = :id"; - $args = array(':id' => array($id, PDO::PARAM_INT)); - $this->con->executeQuery($query, $args); - $results = $this->con->getResults(); - - if (is_array($results) && count($results) > 0) { - $count = $results[0]['count']; - return ($count > 0); - } - - return false; - } } \ No newline at end of file diff --git a/Project/php/model/AbsModel.php b/Project/php/model/AbsModel.php index 919e20c..5c5f604 100755 --- a/Project/php/model/AbsModel.php +++ b/Project/php/model/AbsModel.php @@ -40,5 +40,10 @@ abstract class AbsModel $_SESSION = array(); } + public function checkLoginExist(string $login) { + $gtw = new UserGateway(); + return $gtw->findUserByEmail($login) != null; + } + public abstract function is(string $login, array $roles); } \ No newline at end of file diff --git a/Project/php/model/MdlStudent.php b/Project/php/model/MdlStudent.php index 08d16d9..d827743 100755 --- a/Project/php/model/MdlStudent.php +++ b/Project/php/model/MdlStudent.php @@ -13,10 +13,6 @@ class MdlStudent extends AbsModel { parent::__construct("student"); } - public function checkIdExist(int $id):bool { - $gtw = new UserGateway(); - return $gtw->checkIdExist($id); - } public function getAll():array{ $gtw = new VocabularyListGateway();