Supprimer son compte

Suivre ce topic
Ce topic est suivi par : Personne...
Ce topic a été résolu
Balatharas

Balatharas Le 22 juin 2016 à 13:48 (Édité le 25 janvier 2019 à 17:51)

Bonjour je voudrais savoir comment donner la possibilité a un utilisateur de supprimer son compte. Sur la page de son profil il y aura un petit formulaire ou il devra rentrer son mot de passe de compte pour confirmer.

J'ai tester quelques trucs mais ils sont faux ^^':
if(isset($_POST['deleteaccount']))
{
   $mdpconfirm = sha1($_POST['mdpconfirm']);
   if(!empty($mdpconfirm))
   {
      $reqmdp = $bdd->prepare('SELECT * FROM membres WHERE motdepasse = ?');
      $reqmdp->execute(array($mdpconfirm));
      $userinfo = $reqmdp->fetch();
      $_SESSION['id'] = $userinfo['id'];
      $_SESSION['pseudo'] = $userinfo['pseudo'];
      $_SESSION['mail'] = $userinfo['mail'];
      $userexist = $reqmdp->rowCount();
      if($userexist == 1)
      {
         $deleteaccount = $bdd->prepare('DELETE FROM membres id = ? AND pseudo = ? AND mail = ? AND motdepasse = ? AND avatar = ? AND uniqid = ? AND id_parrain = ? AND confirmkey = ? AND confirmer = ?');
         $deleteaccount->execute(array(/*Je ne vois pas quoi mettre ^^*/));
      }
      else
      {
         $error = "Mot de passe incorrect.";
      }
   }
   else
   {
      $error = "Le champ doit être complété pour continuer !";
   }
}

Merci 😀
Ranarxhag

Ranarxhag Le 22 juin 2016 à 18:35

Yo !

Tu ne t'y prend pas correctement. Je t'ai refais le code et je vais te l'expliquer 😀

<?php
if(isset($_POST['deleteaccount']))
{
   if(!empty($_POST['mdpconfirm'])) // On vérifie avant de le hasher car sinon ça ne fonctionne pas 
   {
      $mdpconfirm = sha1($_POST['mdpconfirm']);
      $reqmdp = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
      $reqmdp->execute(array($_SESSION['id']));
      $userinfo = $reqmdp->fetch();
      if($userinfo['motdepasse'] == $mdpconfirm) 
      {
         $deleteaccount = $bdd->prepare('DELETE FROM membres WHERE id = ?');
         $deleteaccount->execute(array($_SESSION['id']));
         header('Location: deconnexion.^php') // Redirection vers la page de déconnexion comme ça il est déconnecté en même temps
      }
      else
      {
         $error = "Mot de passe incorrect.";
      }
   }
   else
   {
      $error = "Le champ doit être complété pour continuer !";
   }
}
Tout d'abord, tu vérifies d'abord si le champ mot de passe est vide avant de le hasher car s'il hash un résultat vide, il va quand-même se transformer en une série de caractères.

Ensuite, tu séléctionnes toutes les informations du membre en fonction de son $_SESSION['id']. Tu fais une comparaison entre le mot de passe inscrit en BDD et le mot de passe qu'il a inscrit et s'il est bon, tu supprimes le membre le plus bêtement possible. Ensuite, tu fais une redirection vers la page de déconnexion histoire que le type ne reste pas connecté malgré le compte supprimé.

Tu peux, si tu le souhaites, rajouter une petite variable de session SUCCESS afin de confirmer la validation de suppression du compte et tu détruit ensuite cette variable à la suite de son affichage.

Normalement, le code est bon 😋

Ranarxhag
Balatharas

Balatharas Le 22 juin 2016 à 20:08

Merci merci 😄 @Ranarxhag !
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte