Requête SQL ne fonctionne pas et n'affiche pas d'erreur

Dev_seewers

Dev_seewers Le 21 juillet 2020 à 12:26

Bonjour, je suis en train d'écrire le code d'un site à moi du nom de SHEAL. Et donc je ne savais pas comment crée un espace-membre. J'ai regardé la vidéo de primfx et j'ai recopier et enregistrer dans ma mémoire d'éléphant. Puis je lance mon code et la sa me dit "☼VOUS ETES INSCRIT" mais dans ma table rien ne se passe. Rappel je suis un peu nul je n'ai que 10 ans.

` <?php $bdd = new PDO("mysql:host=127.0.0.1;dbname=sheal;charset=utf8", "root", "");

if (isset($_POST["sub"])) { if (!empty($_POST["pseudo"]) AND !empty($_POST["email"]) AND !empty($_POST["email2"]) AND !empty($_POST["mdp"]) AND !empty($_POST["mdp2"])) { $pseudo = htmlspecialchars($_POST["pseudo"]); $email = htmlspecialchars($_POST["email"]); $email2 = htmlspecialchars($_POST["email2"]); $mdp = htmlspecialchars($_POST["mdp"]); $mdp2 = htmlspecialchars($_POST["mdp2"]);

    $pseudolengh = strlen($pseudo);
    if ($pseudolengh <= 30) {
        if ($email == $email2) {
            if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
                if ($mdp == $mdp2) {
                    $insertmbr = $bdd->prepare("INSERT INTO membre(pseudo, mail, motdepasse) VALUES(?, ?, ?)");
                    $insertmbr->execute(array($pseudo, $email, $mdp));
                    if ($insertmbr) {
                        $erreur = "☼VOUS ETES INSCRIT";
                    } else {
                        $erreur = "Erreur : pendant l'inscription veuiller contacter notre support 24h/24h";
                    }
                } else {
                    $erreur = "Erreur : vos mot-de-passes ne sont pas pareille";
                }
            } else {
                $erreur = "Erreur : veuiller communiqué des addresse electronique valide";
            }
        } else {
            $erreur = "Erreur : vos emails ne sont pas pareille";
        }
    } else {
        $erreur = "Erreur : votre pseudo est plus grand que 30 caractère";
    }
} else {
    $erreur = "Erreur : tous les champs doivent être remplis";
}

} ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title>Sheal | home</title> <link rel="stylesheet" href="CSS/style.css"> <link type="image/png" rel="icon" href="log.png"> <script type="text/javascript" src="JS/app.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> </head> <body background="montagne-douce-couche-soleil.jpg"> <div class="banner">

  </div>
  <div id="menu"><br><br>
    <a href="index.php">Home - </a>
    <a href="">Connexion - </a>
    <a href="">Profil</a>
  </div>
  <div class="banner">

  </div>

  <div class="content"><br><br><br><br>
    <form method="POST">
       <input type="text" name="pseudo" placeholder="VOTRE PSEUDO" class="desinput"><br><br>

       <input type="email" name="email" placeholder="VOTRE EMAIL" class="desinput"><br><br>

       <input type="email" name="email2" placeholder="CONFIRMEZ VOTRE EMAIL" class="desinput"><br><br>

       <input type="password" name="mdp" placeholder="VOTRE MOT-DE-PASSE" class="desinput"><br><br>

       <input type="password" name="mdp2" placeholder="CONFIRMER VOTRE MOT-DE-PASSE" class="desinput"><br><br>

       <input type="submit" name="sub" placeholder="Valider" class="dessubmit">
       <br>
       <?php
           if (isset($erreur)) {
            echo "<font color='red'>" . $erreur . "</font>";
           }
       ?>
    </form>
  </div> 

</body> </html> `

Dev_seewers

Dev_seewers Le 21 juillet 2020 à 12:28

<?php
$bdd = new PDO("mysql:host=127.0.0.1;dbname=sheal;charset=utf8", "root", "");

if (isset($_POST["sub"])) {
    if (!empty($_POST["pseudo"]) AND !empty($_POST["email"]) AND !empty($_POST["email2"]) AND !empty($_POST["mdp"]) AND !empty($_POST["mdp2"])) {
        $pseudo = htmlspecialchars($_POST["pseudo"]);
        $email = htmlspecialchars($_POST["email"]);
        $email2 = htmlspecialchars($_POST["email2"]);
        $mdp = htmlspecialchars($_POST["mdp"]);
        $mdp2 = htmlspecialchars($_POST["mdp2"]);

        $pseudolengh = strlen($pseudo);
        if ($pseudolengh <= 30) {
            if ($email == $email2) {
                if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
                    if ($mdp == $mdp2) {
                        $insertmbr = $bdd->prepare("INSERT INTO membre(pseudo, mail, motdepasse) VALUES(?, ?, ?)");
                        $insertmbr->execute(array($pseudo, $email, $mdp));
                        if ($insertmbr) {
                            $erreur = "☼VOUS ETES INSCRIT";
                        } else {
                            $erreur = "Erreur : pendant l'inscription veuiller contacter notre support 24h/24h";
                        }
                    } else {
                        $erreur = "Erreur : vos mot-de-passes ne sont pas pareille";
                    }
                } else {
                    $erreur = "Erreur : veuiller communiqué des addresse electronique valide";
                }
            } else {
                $erreur = "Erreur : vos emails ne sont pas pareille";
            }
        } else {
            $erreur = "Erreur : votre pseudo est plus grand que 30 caractère";
        }
    } else {
        $erreur = "Erreur : tous les champs doivent être remplis";
    }
}
?>
<!DOCTYPE html>
<html lang="fr">
   <head>
      <meta charset="utf-8">
      <title>Sheal | home</title>
      <link rel="stylesheet" href="CSS/style.css">
      <link type="image/png" rel="icon" href="log.png">
      <script type="text/javascript" src="JS/app.js"></script>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
   </head>
   <body background="montagne-douce-couche-soleil.jpg">
      <div class="banner">

      </div>
      <div id="menu"><br><br>
        <a href="index.php">Home - </a>
        <a href="">Connexion - </a>
        <a href="">Profil</a>
      </div>
      <div class="banner">

      </div>

      <div class="content"><br><br><br><br>
        <form method="POST">
           <input type="text" name="pseudo" placeholder="VOTRE PSEUDO" class="desinput"><br><br>

           <input type="email" name="email" placeholder="VOTRE EMAIL" class="desinput"><br><br>

           <input type="email" name="email2" placeholder="CONFIRMEZ VOTRE EMAIL" class="desinput"><br><br>

           <input type="password" name="mdp" placeholder="VOTRE MOT-DE-PASSE" class="desinput"><br><br>

           <input type="password" name="mdp2" placeholder="CONFIRMER VOTRE MOT-DE-PASSE" class="desinput"><br><br>

           <input type="submit" name="sub" placeholder="Valider" class="dessubmit">
           <br>
           <?php
               if (isset($erreur)) {
                echo "<font color='red'>" . $erreur . "</font>";
               }
           ?>
        </form>
      </div> 
   </body>
</html>
PrimFX

PrimFX Le 24 juillet 2020 à 13:37 (Édité le 24 juillet 2020 à 13:37)

Bonjour @Dev_seewers,

Vu le problème que tu rencontres, cela vient à priori d'une erreur dans ta requête SQL : les noms des tables et champs sont-ils bien épelés dans ta requête SQL d'insertion ? (pas de faute de frappe par exemple ?)

Je t'invité également à nous envoyer une capture d'écran de ta base de données / table "membre" afin que l'on puisse jeter un coup d'oeil à sa structure.

Enfin, dernière chose, tu peux activer les erreurs SQL en ajoutant les lignes suivantes juste après la ligne de connexion à ta base de données ($bdd = new PDO...) :

$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Est-ce qu'avec ce bout de code supplémentaire, lorsque tu tentes de t'inscrire sur ton site, une erreur apparaît ? Si oui, tu peux également l'envoyer sur le forum, ça devrait nous aider à trouver une solution 😉

« Rappel je suis un peu nul je n'ai que 10 ans. » : Très honnêtement, si tu comprends bien ce que fait tout ce code que tu as envoyé et que tu es parvenu à créer ta base de données et à faire fonctionner ce code (excepté la requête SQL qui semble poser problème quelque part), je pense que tu as déjà un très bon niveau pour ton âge 😅

A bientôt,

PrimFX

M-azine_2009

M-azine_2009 Le 26 juillet 2020 à 18:29 (Édité le 26 juillet 2020 à 18:35)

Yo @Primfx, je n'ai pas pu me connnecter donc j'ai crée un new compte. J'ai changer de code et je vais le poster.

<?php
$bdd = new PDO("mysql:host=127.0.0.1;dbname=eill_uv", "root", "");

if (isset($_POST["forminscription"])) {
    if (!empty($_POST["pseudo"]) AND !empty($_POST["mail"]) AND !empty($_POST["mail2"]) AND !empty($_POST["mdp"]) AND !empty($_POST["mdp2"])) {
        $pseudo = htmlspecialchars($_POST["pseudo"]);
        $mail = htmlspecialchars($_POST["mail"]);
        $mail2 = htmlspecialchars($_POST["mail2"]);
        $mdp = sha1($_POST["mdp"]);
        $mdp2 = sha1($_POST["mdp2"]);

        $pseudolength = strlen($pseudo);
        if ($pseudolength <= 255) {
            if ($mail == $mail2) {
                if (filter_var($mail, FILTER_VALIDATE_EMAIL)) {
                    if ($mdp == $mdp2) {
                  $insertmbr = $bdd->prepare("INSERT INTO uv_membre(id, pseudo_uv, mail_uv)");
                  $insertmbr->execute(array($pseudo, $mail, $mdp));
               } else {
                  $erreur = "Erreur : vos mdps ne sont pas pareille";
               }
                } else {
                    $erreur = "Erreur : vos emails ne sont pas valide";
                }
            } else {
                $erreur = "Erreur : vos emails ne sont pas pareille";
            }
        } else {
            $erreur = "Erreur : votre pseudo est plus grand que 255 caractère";
        }
    } else {
        $erreur = "Erreur : tous les champs doient être remplis";
    }
}
?>
<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8">
      <meta name="title" content="Eill - your forum, chat and tutorial site.">
      <meta name="desciption" content="Eill, is a site where you can ask questions, chat, and watch tutorials designed by users and staff for free.">
      <title>Eill | inscription</title>
      <link rel="stylesheet" type="text/css" href="CSS/style.css">
      <link rel="shortcut icon" href="log.png">
      <script type="text/javascript" src="JS/app.js"></script>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
   </head>
   <body>
      <div align="center">
         <h2>Inscription</h2>
         <br><br>
         <form method="POST" action="">
            <table>
               <tr>
                  <td align="right">
                     <label for="pseudo">Pseudo :</label>
                  </td>
                  <td>
                     <input type="text" placeholder="Votre pseudo" id="pseudo" name="pseudo" value="<?php if(isset($pseudo)) { echo $pseudo; } ?>">
                  </td>
               </tr>
               <tr>
                  <td align="right">
                     <label for="mail">Mail :</label>
                  </td>
                  <td>
                     <input type="email" placeholder="Votre mail" id="mail" name="mail" value="<?php if(isset($mail)) { echo $mail; } ?>">
                  </td>
               </tr>
               <tr>
                  <td align="right">
                     <label for="mail2">Confirmation du mail :</label>
                  </td>
                  <td>
                     <input type="email" placeholder="Confirmez votre mail" id="mail2" name="mail2" value="<?php if(isset($mail2)) { echo $mail2; } ?>">
                  </td>
               </tr>
               <tr>
                  <td align="right">
                     <label for="mdp">Mot de passe :</label>
                  </td>
                  <td>
                     <input type="password" placeholder="Votre mot de passe" id="mdp" name="mdp">
                  </td>
               </tr>
               <tr>
                  <td align="right">
                     <label for="mdp2">Confirmation du mot de passe :</label>
                  </td>
                  <td>
                     <input type="password" placeholder="Confirmez votre mdp" id="mdp2" name="mdp2">
                  </td>
               </tr>
               <tr>
                  <td></td>
                  <td align="center">
                     <br>
                     <input type="submit" name="forminscription" value="Je m'inscris">
                  </td>
               </tr>
            </table>
         </form>
         <?php
         if(isset($erreur)) {
            echo '<font color="red">'.$erreur."</font>";
         }
         ?>
      </div>
   </body>
</html>
M-azine_2009

M-azine_2009 Le 26 juillet 2020 à 18:32

Et pour ma bdd 123

M-azine_2009

M-azine_2009 Le 26 juillet 2020 à 18:39

Après avoir mit la ligne de code que tu ma donnée $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); bHEIN Il y a eut une erreur.Une erreur

M-azine_2009

M-azine_2009 Le 26 juillet 2020 à 18:47

Dernier truck, à propos des tutos forum ce serait cool que au lieu de nous montrer ton code (IL EST TRÈS JOLI), le refaire en explicant mais très bon tuto comme même et vivement le retour des vidéos.

M-azine_2009

M-azine_2009 Le 26 juillet 2020 à 22:23

Ps c'est bon j'ai trouver la solution dans ma petite têtê, mais j'ai continuer avec l'url rewriting mais je n'arrive pas a recuperer la variable id de monsite.com/profil/1

M-azine_2009

M-azine_2009 Le 26 juillet 2020 à 22:25

123

Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte