Supprimer son compte
- Accueil
- Forum
- Programmation
- PHP
- Supprimer son compte
Balatharas Le 22 juin 2016 à 13:48 (Édité le 25 janvier 2019 à 17:51)
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 Le 22 juin 2016 à 18:35 (Édité le 1 janvier 1970 à 01:00)
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