Supprimer un compte PHP
- Accueil
- Forum
- Programmation
- PHP
- Supprimer un compte PHP
Sh0kaP1k Le 30 mars 2016 à 17:33 (Édité le 25 janvier 2019 à 17:50)
J'ai un espace membre sur mon site et j'aimerai que quand la personne clique sur "Supprimer mon compte" cela l'amene vers une autre page ou il devra cocher une case de confirmation et valider pour que son compte soit supprimer de la bdd.
Merci de votre aide 😀
Rudelle65 Le 30 mars 2016 à 17:43 (Édité le 1 janvier 1970 à 01:00)
Sh0kaP1k Le 30 mars 2016 à 17:44 (Édité le 1 janvier 1970 à 01:00)
quiqou55 Le 30 mars 2016 à 19:24 (Édité le 31 mars 2016 à 00:18)
<?php
$id = $_GET['id'];
$bdd = new PDO("mysql:dbname=******;host=******;charset=utf8")
$bdd->prepare("DELETE FROM membres WHERE id = ?")->execute( array($id) );
$redirect_url = "/";
header("Location: {$redirect_url}");
exit;
TheFlameflo Le 30 mars 2016 à 21:26 (Édité le 1 janvier 1970 à 01:00)
$bdd = new PDO("mysql:dbname=******;host=******;charset=
$bdd->prepare("DELETE FROM membres WHERE id = ?")->execute( array($_SESSION['id']) );
Il ne te reste qu'à l'adapter selon tes besoins. PrimFX Le 30 mars 2016 à 22:34 (Édité le 1 janvier 1970 à 01:00)
J'ajouterai qu'il serait bien de proposer également une étape de confirmation de suppression du compte, histoire de ne pas supprimer de compte par erreur x) et que si tu as par exemple un système de commentaires sur ton site, il faudra penser à gérer les comptes supprimés (affichage d'un message style "Compte supprimé" à la place du pseudo, avatar par défaut, etc.) 😉
M69-74 Le 31 mars 2016 à 10:06 (Édité le 1 janvier 1970 à 01:00)
TheFlameflo Le 31 mars 2016 à 12:49 (Édité le 1 janvier 1970 à 01:00)
Alors, je te conseille de créer un lien "Supprime ton compte !" et d'y inclure ça :
$bdd = new PDO("mysql:dbname=******;host=******;charset=
$bdd->prepare("DELETE FROM membres WHERE id = ?")->execute( array($_SESSION['id']) );
La première ligne, c'est le connexion à la base de données et la deuxième la requête qui supprime le compte.
Par contre, je te propose d'adapter le système pour voir si l'utilisateur est connecté et le plus important est de mettre un système de confirmation avant de supprimer le compte !
M69-74 Le 31 mars 2016 à 14:12 (Édité le 31 mars 2016 à 14:21)
Voila, merci de votre aide !
TheFlameflo Le 31 mars 2016 à 21:21 (Édité le 1 janvier 1970 à 01:00)
Faire de nouvelles vérifications à la connexion
Ajouter une "case" dans ta bdd avec supprimé ou non.
Mais si tu y tiens, tu dois faire le test à la connexion voir si le compte est supprimé avant de faire la connexion et si c'est le cas, NE PAS le connecter mais afficher le message.
Je crois t'avoir mis sur une piste qui pourrait marcher, te reste plus qu'à créer le système !
Nobodief Le 1 avril 2016 à 13:18 (Édité le 1 avril 2016 à 13:21)
- Tu ne supprime pas les comptes, mais tu peux créer une colonne status qui défini l'état du compte (0 = non activé / 1 = activé / 2 = sans-propriétaire).
- Lors de l'inscription de l'utilisateur tu vérifie par ordre (Asc) tous les comptes qui sont sans propriétaire et s'il y'en à tu fait une update à la place de l'insert pour qu'un nouvel utilisateur prennent le compte sans propriétaire en réinitialisant bien-sur les anciennes valeurs du compte. (Cela t'évite de passer d'un identifiant 11 à 90, comme sa tu gardera toujours un ordre d'identifiant croissant (1,2,3,4,5,6,7), si jamais il n'y à pas de compte sans propriétaire tu fait une insert.
- Pense aussi éventuellement à intégrer un système de dernière connexion avec une date, pour vérifier si le compte est bel est bien inactif et qu'il ne s'agit pas d'un problème de champ, comme sa si un problème est rencontré (par exemple un compte utilisateur qui n'est pas sans propriétaire et qui à été actif récemment, mais qu'il l'est dans la base de donnée tu fait une update du compte concerné pour rétablir le bug).
Sh0kaP1k Le 1 avril 2016 à 19:25 (Édité le 1 avril 2016 à 20:08)
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="" />
<!--[if lte IE 7]>
<link rel="stylesheet" href="style_ie.css" />
<![endif]-->
<title>Supprimer Compte</title>
</head>
<body>
<?php
$sup="SUPPRIMER";
session_start();
if(isset($_SESSION['id']))
{
if(isset($_POST['valider']))
{
if(($_POST['confirmer']) == $sup)
{
$id = $_GET['id'];
$bdd = new PDO("mysql:dbname=*****;host=127.0.0.1;charset=utf8");
$bdd->prepare("DELETE FROM espace_membre WHERE id = ?")->execute( array($id) );
header("Location: *****.php");
exit;
}
else
{
?>
<p id="erreur">Veillez écrire SUPPRIMER dans le champ de texte pour supprimer votre compte</p>
<?php
}
}
}
else
{
header("Location: *****.php");
}
?>
<form method="POST" action="">
<input type="text" id="confirmer" name="confirmer" />
<input type="submit" value="Confirmer" name="velider" />
</form>
</body>
</html>
Ce code ne marche pas HELP !
Nobodief Le 2 avril 2016 à 00:25 (Édité le 2 avril 2016 à 02:05)
<?php
$hostname = "localhost";
$databaseuser = "root";
$databasepassword = "";
$database = "nom de la base de données";
$bdd = new PDO('mysql:host='.$hostname.';dbname='.$database.'', ''.$databaseuser.'', ''.$databasepassword.'');
$bdd->exec("SET CHARACTER SET utf8");
?>
<?php session_start();
require_once('database.php');
?>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="" />
<!--[if lte IE 7]>
<link rel="stylesheet" href="style_ie.css" />
<![endif]-->
<title>Supprimer Compte</title>
</head>
<body>
<?php
$sup="SUPPRIMER";
if(isset($_SESSION['id'])) {
if(isset($_POST['valider'])) {
if($_POST['confirmer'] == $sup) {
$id = $_GET['id'];
$supression = $bdd->prepare("DELETE FROM espace_membre WHERE id = ?");
$supression->execute(array($id));
header("Location: *****.php");
exit;
} else {
$erreur = '<p id="erreur">Vous devez écrire SUPPRIMER !</p>';
}
} else {
$erreur = '<p id="erreur">Veillez écrire SUPPRIMER dans le champ de texte pour supprimer votre compte</p>';
}
} else {
header('Location: ***.php')
}
?>
<?php if(isset($erreur)) { echo $erreur; } ?>
<form method="POST" action="">
<input type="text" id="confirmer" name="confirmer" />
<input type="submit" value="Confirmer" name="velider" />
</form>
</body>
</html>
Sh0kaP1k Le 2 avril 2016 à 23:36 (Édité le 2 avril 2016 à 23:36)
<?php session_start();
?>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="" />
<!--[if lte IE 7]>
<link rel="stylesheet" href="style_ie.css" />
<![endif]-->
<title>Supprimer Compte</title>
</head>
<body>
<?php
if(isset($_SESSION['id'])) {
if(isset($_POST['valider'])) {
if($_POST['confirmer'] == "SUPPRIMER") {
$bdd = new PDO("mysql:dbname=studentseeker;host=127.0.0.1;charset=utf8");
$bdd->prepare("DELETE FROM espace_membre WHERE id = ?")->execute( array($id) );
header("Location: studentseeker.php");
exit;
} else {
$erreur = '<p id="erreur">Vous devez écrire SUPPRIMER !</p>';
}
} else {
$erreur = '<p id="erreur">Veillez écrire SUPPRIMER dans le champ de texte pour supprimer votre compte</p>';
}
} else {
header('Location: studentseeker.php');
}
?>
<?php if(isset($erreur)) { echo $erreur; } ?>
<form method="POST" action="">
<input type="text" id="confirmer" name="confirmer" />
<input type="submit" value="Confirmer" name="valider" />
</form>
</body>
</html>