diff --git a/php/src/controleur/UtilisateurControleur.php b/php/src/controleur/UtilisateurControleur.php index 42f3231..0e277c4 100755 --- a/php/src/controleur/UtilisateurControleur.php +++ b/php/src/controleur/UtilisateurControleur.php @@ -78,7 +78,9 @@ class UtilisateurControleur if (isset($_POST['email'], $_POST['password'])) { $email = Validation::nettoyerString($_POST['email']); $motDePasse = Validation::nettoyerString($_POST['password']); + $utilisateur = $userModel->connection($email, $motDePasse); + if ($utilisateur instanceof Alumni) { $_SESSION['utilisateur'] = $utilisateur; header('Location: index.php?action=accueil'); @@ -112,14 +114,21 @@ class UtilisateurControleur $dVueErreur[] = "L'adresse email est déjà utilisée."; } } - $nouvelUtilisateur = $userModel->inscription($prenom,$nom,$email, $hash); - - if ($nouvelUtilisateur instanceof Alumni) { - header('Location: index.php?action=inscription_success'); - exit(); - } else { + try { + $nouvelUtilisateur = $userModel->inscription($prenom,$nom,$email, $hash); + if ($nouvelUtilisateur instanceof Alumni) { + header('Location: index.php?action=inscription_success'); + exit(); + } else { + $dVueErreur[] = "L'inscription a échoué, veuillez réessayer."; + } + } catch (\Exception $e) { $dVueErreur[] = "L'inscription a échoué, veuillez réessayer."; + $twig->render('inscription.html', ['dVueErreur' => $dVueErreur]); } + + + } echo $twig->render('inscription.html', ['dVueErreur' => $dVueErreur]); } @@ -131,13 +140,15 @@ class UtilisateurControleur if (isset($_SESSION['utilisateur']) && $_SESSION['utilisateur'] instanceof Alumni) { $prenom = $_SESSION['utilisateur']->getPrenom(); $nom = $_SESSION['utilisateur']->getNom(); + $id = $_SESSION['utilisateur']->getId(); } else{ $prenom = null; $nom = null; + $id = null; } //aller sur la page d'accueil avec le nom et prenom de l'utilisateur - echo $twig->render('accueil.html', ['prenom' => $prenom, 'nom' => $nom]); + echo $twig->render('accueil.html', ['prenom' => $prenom, 'nom' => $nom, 'id' => $id]); } protected function inscription_success() diff --git a/php/src/gateway/AlumniGateway.php b/php/src/gateway/AlumniGateway.php index 5e19480..e4fb4c7 100644 --- a/php/src/gateway/AlumniGateway.php +++ b/php/src/gateway/AlumniGateway.php @@ -1,9 +1,6 @@ con->executeQuery($query, array( ':e' => array($email, PDO::PARAM_STR), )); - $res = $this->con->getResults(); - if (count($res) == 0) { - return null; - } - return new Alumni($res[0]['mail'], $res[0]['mdp'], $res[0]['role'], $res[0]['nom'], $res[0]['prenom']); + return $this->con->getResults(); } public function getAll(){ $query='SELECT * FROM Alumni'; $this->con->executeQuery($query); - $res=$this->con->getResults(); - $array=[]; - foreach($res as $r){ - $array[]=new Alumni($r['mail'],$r['id'],$r['mdp'],$r['role']); - } - return $array; + return $this->con->getResults(); } public function getID(string $email) diff --git a/php/src/metier/Alumni.php b/php/src/metier/Alumni.php index 7b61e8a..f132ab2 100644 --- a/php/src/metier/Alumni.php +++ b/php/src/metier/Alumni.php @@ -3,7 +3,7 @@ namespace App\metier; class Alumni{ - + private int $id; /** * @var string Email */ @@ -28,8 +28,9 @@ class Alumni{ * @param Profil $profil */ - public function __construct(string $email, string $motDePasse, String $role, string $nom, string $prenom) + public function __construct(int $id,string $email, string $motDePasse, String $role, string $nom, string $prenom) { + $this->id = $id; $this->email = $email; $this->motDePasse = $motDePasse; $this->role = $role; @@ -76,4 +77,9 @@ class Alumni{ { return $this->profil->getNom(); } + + public function getId() + { + return $this->id; + } } \ No newline at end of file diff --git a/php/src/modele/UtilisateurModele.php b/php/src/modele/UtilisateurModele.php index bdea578..9986c2a 100755 --- a/php/src/modele/UtilisateurModele.php +++ b/php/src/modele/UtilisateurModele.php @@ -29,23 +29,21 @@ class UtilisateurModele { $con = new Connection(DB_HOST,DB_USER,DB_PASS); $gate = new AlumniGateway($con); - // Récupérez l'utilisateur avec l'email donné en utilisant AlumniGateway + + // Récupation de l'utilisateur avec l'email $utilisateur = $gate->findByEmail($email); - if ($utilisateur instanceof Alumni) { - // L'utilisateur existe, vérifiez le mot de passe - if (password_verify($mdp, $utilisateur->getPassword())) { + if ($utilisateur[0]!=null) { + // L'utilisateur existe, vérification du mot de passe + if (password_verify($mdp, $utilisateur[0]['mdp'])) { // Le mot de passe est correct, retournez l'utilisateur - session_start(); - return $utilisateur; + return new Alumni($utilisateur[0]['id'],$utilisateur[0]['mail'], $utilisateur[0]['mdp'], $utilisateur[0]['role'],$utilisateur[0]['nom'],$utilisateur[0]['prenom']); } else { - // Le mot de passe est incorrect, renvoyez null return null; } } else { - // L'utilisateur n'existe pas, renvoyez null return null; } - } + } /** * @description s'inscrire @@ -63,10 +61,10 @@ class UtilisateurModele $profilGate = new ProfilGateway($con); // Insérez le nouvel utilisateur dans la base de données en utilisant AlumniGateway if ($gate->insert($email, $hashpassword, $role)) { - $alumni = $gate->getID($email); - if($profilGate->insert($alumni,$nom, $prenom,$email)){ + $id = $gate->getID($email); + if($profilGate->insert($id,$nom, $prenom,$email)){ // L'insertion a réussi, retournez le nouvel utilisateur - $nouvelUtilisateur = new Alumni($email, $hashpassword, $role,$nom,$prenom); + $nouvelUtilisateur = new Alumni($id,$email, $hashpassword, $role,$nom,$prenom); return $nouvelUtilisateur; } return null; diff --git a/php/templates/accueil.html b/php/templates/accueil.html index b6118c7..0e83968 100755 --- a/php/templates/accueil.html +++ b/php/templates/accueil.html @@ -15,7 +15,7 @@
{% if prenom and nom %} - Bienvenue, {{ prenom }} {{ nom }}! + Bienvenue, {{ prenom }} {{ nom }} {{id}}! {% else %} Bienvenue, invité! {% endif %}