enigme_gateway = new EnigmeGateway(); $this->partie_gateway = new PartieGateway(); $this->utilisateur_gateway = new UtilisateurGateway(); } catch (Exception $e) { $error = $e->getMessage(); require($rep . $view['erreur']); } } public function signUp() { global $sel, $error; $validation = new Validation(); if (!$validation->ValidateEmail($_REQUEST['email'])) { $error = "Email invalides."; throw (new Exception("Email non valide")); } if (!$validation->ValidateUsername($_REQUEST['username'])) { $error = "Nom d'utilisateur invalides. Il ne doit pas contenir de caractère spéciaux."; throw (new Exception("Pseudo non valide")); } if (!$validation->ValidatePassword($_REQUEST['password'])) { $error = "Mots de passe invalides. Il ne doit pas dépasser 100 caractères."; throw (new Exception("Mot de passe non valide")); } $j = $this->utilisateur_gateway->getUtilisateurByEmail($_REQUEST['email']); if ($j->getEmail() != "null") { $error = "Email déjà utilisé."; throw (new Exception("Email déjà utilisé")); } $password = password_hash($_REQUEST['password'] . $sel, PASSWORD_DEFAULT); $utilisateur = new Utilisateur($_REQUEST['email'], $_REQUEST['username'], $password, false); $this->utilisateur_gateway->insert($utilisateur); $_SESSION['role'] = 'user'; $_SESSION['utilisateur'] = $utilisateur; } public function login() { global $vue, $sel, $error; $utilisateur = $this->utilisateur_gateway->getUtilisateurByEmail($_REQUEST['email']); if ($utilisateur->getEmail() == "null") { $error = "Utilisateur non trouvé."; throw new Exception("Utilisateur introuvable"); } $mdp = $this->utilisateur_gateway->getMdpByEmail($_REQUEST['email']); if (! password_verify($_REQUEST['password'] . $sel, $mdp)) { $error = "Mot de passe incorrect."; throw new Exception("Mot de passe invalide"); } $estAdmin = $this->utilisateur_gateway->getEstAdminByEmail($_REQUEST['email']); if ($estAdmin == true) { $_SESSION['role'] = "admin"; } else { $_SESSION['role'] = "user"; } $_SESSION['utilisateur'] = $utilisateur; $_SESSION['connected'] = 'true'; } }