Supprimer compte php BDD/mysql
RésoluJe tient un petit site internet, un membre m'a dis qu'il voulais supprimer son compte mais qu'il n'y a pas de bouton "Supprimer son compte". Alors j'ai créer une page nomais destroy.php mais je n'ai pas trouver le code a insérer dedans, quel est le code SVP. merci d'avance
<[config]>(supprimé par la modération)[</config>]
24 réponses
Le sujet concerne la création d'une page destroy.php pour supprimer un compte utilisateur via PHP et trouver le code nécessaire pour effectuer la suppression en pratique. Plusieurs réponses indiquent l'absence d'une fonction PHP native de suppression et privilégient une étape SQL Delete basée sur l'identifiant en session, tout en soulignant les risques de sécurité. D'autres interventions illustrent des essais avec des manipulations de sessions et des tests qui révèlent le flux d'informations sensibles, incitant à privilégier des pratiques sécurisées et authentification. Une nuance utile montre qu'une mise en œuvre pratique peut nécessiter une vérification des droits et une prévention des fuites, plutôt qu'une suppression directe sans confirmation.
-
je t'en prie, heureux que ça marche ;-)
-
merci beaucoup, vraiment vous m'avez beaucoup aidez, j'essaierez de vous rendre la pareile :)
-
essaie maintenant ca
<?php ini_set("error_reporting", 1); session_start(); // remplace les acces $mysqli_connection = new MySQLi('localhost', 'user', 'pass', 'db'); //rapport if($mysqli_connection->connect_error){ echo "Non connecte"; } else{ //operation $sql="Delete from users where username='".$_SESSION['username']."'"; $mysqli->query($sql) ? $message="supprime" : $message="non supprime"; echo $message; } ?> -
alors: C'est bien
users
le noms de la table. Les champs:
id ; username ; password ; email ; avatar ; signup_date -
ok donc c'est la requête, donnes moi exactement (et fait très attention) tous les champs qui composent la table users, et regarde bien si la table s'appelle users (avec s) ou user (sans s)
-
On est connecté, il y a écrit:
Connecte
-
d'accord, donc soit on ne se connecte pas a la bdd soit la requette est fausse, on essaie de voir si la connexion marche bien, tu vide le tous et met ca et dis moi ce que ca donne:
<?php
ini_set("error_reporting", 1);
// remplace les acces
$mysqli_connection = new MySQLi('localhost', 'user', 'pass', 'db');
//rapport
if($mysqli_connection->connect_error){
echo "Non connecte";
}
else{
echo "Connecte";
}
?> -
il y a écrit
non supprime
-
ok maintenant tu supprime tous et tu met ça et dis moi ce que ça donne ( tu modifie les accès)
<?php
ini_set("error_reporting", 1);
session_start();
//ouvrir une connexion, tu remplaces par les accès
$mysqli = new mysqli("localhost", "nomuser", "password", "nombdd");
// effectuer l'operation
$sql="Delete from users where username=".$_SESSION['username'];
$mysqli->query($sql) ? $message="supprime" : $message="non supprime";
echo $message;
//fermer la connexion
mysqli_close();
?> -
sa donne cette chose:
Array ( [username] => test [userid] => 4 )
-
ok on va aller doucement, dans ta page tu supprime tous et tu tapes:
<?php
session_start();
print_r($_SESSION);
?>
et dis moi ce que ça donne -
Déjà fait je le sais t'inquiète.
-
ne fais pas un copier coller brute, il faut que tu remplace
"nomuser" par l'utilisateur de la BDD
"password" par le mot de passe de la bdd
"nombdd" le nom de la BDD
et aussi localhost si ta base est hebergé separaiment
apres tu teste -
non sa ne m'affiche rien, la table n'est pas supprimer
-
essaie avec ca
<?php //ouvrir une connexion, tu remplaces par les accès $mysqli = new mysqli("localhost", "nomuser", "password", "nombdd"); //tester la connexion if (mysqli_connect_errno()) { printf("Echec de la connexion : %s\n", mysqli_connect_error()); exit(); } // effectuer l'operation $mysqli->query("Delete from users where username=".$_SESSION['username']); //fermer la connexion mysqli_close(); ?> -
non a mince sa donnerais plutôt ça:
Delete from users where username=' <?php if(isset($_SESSION['username'])){echo ' '.htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8');} ?>' -
est ce que ca existe un champs login dans ta bdd ?
-
Donc sa marcherais ça ?
Delete from users where login=' <?php if(isset($_SESSION['username'])){echo ' '.htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8');} ?>' -
Delete from users where login='loginasupprimer'
ou bien
Delete from users where id='idasupprimer' -
J'ai trouver ça c'est un code valide ?
<?php DELETE [LOW_PRIORITY] FROM Nom_table [WHERE where_definition] [LIMIT rows] ?>
- 1
- 2