Supprimer compte php BDD/mysql

Résolu
Bonjour,

Je 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

Résumé de la discussion

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.

Bobot (l’IA à votre service)
  1. Bonjour,
    ton erreure a ete de ne pas creer une table de client ...
    comment tu crées ton client mysql ??
    1. ya une table "users"
      1. Contributeur
        Regarde la commande SQL "delete"
      2. mais non sa marche pas le

        if(get_magic_quotes_gpc())
        {
        $_DELETE['username'] = stripslashes($_DELETE['username']);
        $_DELETE['password'] = stripslashes($_DELETE['password']);
        $_DELETE['email'] = stripslashes($_DELETE['email']);
        $_DELETE['avatar'] = stripslashes($_DELETE['avatar']);
      3. Contributeur
        La requête SQL "delete".
      4. A ce stade-là, ce n'est plus ce genre de conseil qu'il faut lui prodiguer, mais plutôt une bonne adresse de tutoriel afin qu'il puisse apprendre de lui-même le PHP/MySQL. Il suffit de suivre les différents sujets qu'il a déjà rédigé sur ce forum pour comprendre que c'est le meilleur conseil à lui donner. Sans vouloir manquer de respect bien sùr... ^^
      5. je sais mais je demande le code php
    2. il n'y a pas la fonction php "supprimer"
      1. Contributeur
        En php, tu te connectes à ta base comme expliqué dans mon lien.
        Tu exécutes ensuite la commande SQL "delete" que tu trouveras sur Google, entouré de code php, comme dans les exemples du lien.

        Si tu ne veux pas faire plus d'effort, tu n'auras pas plus d'aide.
      2. la connexion j'ai réussi maintenant la commande sql :)
    3. tu cherche le code php de ajouter et tu t'inspire en mettant la requête supprimer
      1. J'ai trouver ça c'est un code valide ?
        <?php
        DELETE [LOW_PRIORITY] FROM Nom_table  
        [WHERE where_definition] [LIMIT rows] 
        ?>
        1. Delete from users where login='loginasupprimer'

          ou bien

          Delete from users where id='idasupprimer'
          1. Donc sa marcherais ça ?

            
            
            
            Delete from users where login=' <?php if(isset($_SESSION['username'])){echo ' '.htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8');} ?>' 
            1. 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');} ?>' 
              1. 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();
                
                ?>
                1. 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
                  1. 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
                    1. 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();

                      ?>
                      1. 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";
                        }

                        ?>
                        1. 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)
                          • 1
                          • 2