diff --git a/src/Controleur/UserControler.php b/src/Controleur/UserControler.php index 9a1ad92..b46c1af 100644 --- a/src/Controleur/UserControler.php +++ b/src/Controleur/UserControler.php @@ -41,6 +41,14 @@ class UserControler { global $vues; $p = $this->uMod->getUsername($_SESSION["user"]); + + // Pour les messages d'erreur + $error_message = null; + if (isset($_SESSION['error_message'])) { + $error_message = $_SESSION['error_message']; + // Supprimer le message d'erreur après l'avoir lu + unset($_SESSION['error_message']); + } require_once $vues['profil']; } @@ -212,6 +220,8 @@ class UserControler { header("Location:". $racine ."/quote/$id"); } + + public function changedata() : void { global $vues, $racine; @@ -226,15 +236,28 @@ class UserControler { //Modif le pseudo if($newPseudo){ $user = $this-> uMod->setUsername($_SESSION['user'], $newPseudo); - if($user == $newPseudo){ //Si le pseudo existe déjà + + if($user == $newPseudo){ $_SESSION['user'] = $newPseudo; + + } + else{ // pseudo invalide + $_SESSION['error_message'] = $newPseudo . " n'est pas valide ou non libre"; + header("Location: ". $racine."/profil"); } } + //Modif l'email else if($newEmail){ $user = $this-> uMod->setEmail($_SESSION['user'], $newEmail); + + if($user == $_SESSION['user']){ // si email incorrect, renvoie le nom de l'utilisateur de la session + $_SESSION['error_message'] = "L'email n'est pas valide"; + header("Location: ". $racine."/profil"); + } } + //Modif le mot de passe else if($newMdpFirst && $newMdpSecond){ if($newMdpFirst == $newMdpSecond){ @@ -243,8 +266,13 @@ class UserControler { $newPassWd = password_hash($newMdpFirst, PASSWORD_BCRYPT, $option); $user = $this-> uMod->setPassWd($_SESSION['user'], $newPassWd); } + else{ + $_SESSION['error_message'] = "Les mots de passe ne correspondent pas"; + header("Location: ". $racine."/profil"); + } } + //Modif l'image else if($newImage){ $user = $this->uMod->setImage($_SESSION['user']); } diff --git a/src/Model/UserModel.php b/src/Model/UserModel.php index 5f2a99d..a133370 100644 --- a/src/Model/UserModel.php +++ b/src/Model/UserModel.php @@ -97,15 +97,14 @@ if (!empty($res) && isset($res[0]['username'])) { return $res[0]['username']; } - - // En cas d'échec, retourne l'ancien nom d'utilisateur - return $username; + + return $username; // En cas d'échec, retourne l'ancien nom d'utilisateur } public function setEmail(string $username, string $newEmail){ if ($this->IsExisteEmail($newEmail)) { - return $email; + return $username; } $res = $this->gateway->updateEmail($username,$newEmail); diff --git a/vue/profil.php b/vue/profil.php index 6ce71ee..8dc5208 100644 --- a/vue/profil.php +++ b/vue/profil.php @@ -16,5 +16,6 @@ 'srcUsername' => $p->getPseudo(), 'srcEmail' => $p->getEmail(), 'srcImg' => $p->getImgPrfl(), + 'error_message' => $error_message, )); ?> \ No newline at end of file diff --git a/vue/templates/profil.html.twig b/vue/templates/profil.html.twig index b46eaa7..dd641ac 100644 --- a/vue/templates/profil.html.twig +++ b/vue/templates/profil.html.twig @@ -6,6 +6,10 @@ + {% if error_message is defined and error_message is not empty %} +

{{ error_message }}

+ {% endif %} +

{{ srcUsername }}

{{ srcEmail }}