diff --git a/Project/php/controller/AbsController.php b/Project/php/controller/AbsController.php old mode 100755 new mode 100644 index 606567d..a82374c --- a/Project/php/controller/AbsController.php +++ b/Project/php/controller/AbsController.php @@ -9,7 +9,7 @@ use gateway\VocabularyListGateway; use model\MdlStudent; use model\VocabularyList; -abstract class AbsController +class AbsController { public function showAccountInfos(): void { @@ -92,12 +92,40 @@ abstract class AbsController throw new Exception("Erreur"); } } - public function quiz(): void + public function quiz($match): void { global $twig; - $vocabId = $_GET['vocabID']; + $vocabId = Validation::filter_int($match['params']['id'] ?? null); $mdl = new TranslationGateway(); $allTranslation = $mdl->findByIdVoc($vocabId); - echo $twig->render('quizzView.html', ['translations' => $allTranslation]); + $shuffle = $allTranslation; + shuffle($shuffle); + echo $twig->render('quizzView.html', ['translations' => $allTranslation, 'randomtranslations' => $shuffle]); + } + + public function login(): void { + global $twig; + echo $twig->render('login.html'); + } + + public function confirmLogin(): void { + $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 checkLoginExist(string $login): bool { + $mdl = new MdlStudent(); + return $mdl->checkLoginExist($login); + } + + public function disconnect(): void { + $mdl = new MdlStudent(); + $mdl->deconnection(); + $this->home(); } } \ No newline at end of file diff --git a/Project/php/controller/FrontController.php b/Project/php/controller/FrontController.php index b2597d3..cdcb566 100755 --- a/Project/php/controller/FrontController.php +++ b/Project/php/controller/FrontController.php @@ -19,11 +19,13 @@ class FrontController $router = new \AltoRouter(); $router->setBasePath($altorouterPath); - $router->map('GET', '/', 'AppController'); - $router->map('GET|POST', '/[a:action]?/[i:id]?', 'NULL'); + $router->map('GET', '/', 'FrontController'); $router->map('GET|POST', '/admin/[i:id]/[a:action]?', 'Admin'); $router->map('GET|POST', '/teacher/[i:id]/[a:action]?', 'Teacher'); $router->map('GET|POST', '/student/[i:id]/[a:action]?', 'Student'); + $router->map('GET|POST', '/abs/[a:action]?', 'Abs'); + + $twig->addGlobal('base', $altorouterPath); $match = $router->match(); @@ -40,25 +42,6 @@ class FrontController $this->home(); break; - case 'memory': - AbsController::memory($match); - break; - - case 'login': - $this->login(); - break; - - case 'confirmLogin': - $this->confirmLogin(); - break; - - 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"); @@ -85,7 +68,7 @@ class FrontController break; } - else $this->login(); + else (new AbsController())->login(); } } } @@ -96,42 +79,9 @@ class FrontController } } - public function home(): void { global $twig; echo $twig->render('home.html'); var_dump($_SESSION['roles']); } - - public function login(): void { - global $twig; - echo $twig->render('login.html'); - } - - public function confirmLogin(): void { - $model = new MdlStudent(); - $login = strip_tags($_POST['logemail']); - $password = strip_tags($_POST['logpass']); - $user = $model->connection($login, $password); - $this->home(); - } - - public function checkIdExist(int $id):bool - { - $mdl = new MdlStudent(); - $res = $mdl->checkIdExist($id); - return $res; - } - - public function disconnect(): void { - $mdl = new MdlStudent(); - $mdl->deconnection(); - $this->home(); - } - public function quiz(){ - $ctrl = new StudentController(); - $ctrl->quiz(); - } - - } \ No newline at end of file diff --git a/Project/php/controller/StudentController.php b/Project/php/controller/StudentController.php index 10dc1f6..aef9087 100755 --- a/Project/php/controller/StudentController.php +++ b/Project/php/controller/StudentController.php @@ -35,23 +35,4 @@ class StudentController $vocab = $mdl->getVocabByName($name); echo $twig->render('manageVocabView.html', ['vocabularies' => $vocab]); } - - public function quiz(): void - { - global $twig; - $vocabId = $_GET['vocabID']; - $mdl = new TranslationGateway(); - $allTranslation = $mdl->findByIdVoc($vocabId); - echo $twig->render('quizzView.html', ['translations' => $allTranslation]); - } - /* - public function flashcard(VocabularyList $v) { - $idVoc = $v->getId(); - $mdl = new TranslationGateway(); - $allTranslation = $mdl->findByIdVoc($idVoc); - while(1) { - - } - } - }*/ } \ No newline at end of file diff --git a/Project/php/css/memory.css b/Project/php/css/memory.css old mode 100644 new mode 100755 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(); diff --git a/Project/php/templates/home.html b/Project/php/templates/home.html index fbffde0..420f245 100755 --- a/Project/php/templates/home.html +++ b/Project/php/templates/home.html @@ -34,7 +34,7 @@
diff --git a/Project/php/templates/login.html b/Project/php/templates/login.html index 3b56b83..ce44e08 100755 --- a/Project/php/templates/login.html +++ b/Project/php/templates/login.html @@ -5,12 +5,12 @@ - +