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 }}