Partage
  • Partager sur Facebook
  • Partager sur Twitter

iprobleme insertion formulaire a base de donnée

    14 octobre 2021 à 14:53:58

    bonjour

    je viens vers vous car je suis bloquée

    j'essaye d'envoyer les donnée de mon formulaire en vain

    voici mon code :

    <p>formulaire oubligatoire a remplir</p>
    <form method="post" action="">
    <p> nom</p>
    <input type="text" name="nom" placeholder="votre nom" required="required">
    <p>prenom</p>
    <input type="text" name="prenom" placeholder="votre prenom"required="required"/>
    <p> age </p>
    <input type="text" name="age" placeholder="votre age" required="required" />
    <p>telephone</p>
    <input type="text" name="tel" placeholder="votre numero de telephone"required="required" />
    
    <br />
    <br />
    <input type="submit" name="valider" value="valider" />
    
    </form>
    <?php
    if(isset($_POST['valider']));
    $nom=$_POST['nom'];
    $prenom=$_POST['prenom'];
    $age=$_POST['age'];
    $tel=$_POST['tel'];
    $con=new mysqli('localhost','root','root','location');
    if($con-> connect_error)
    {
    	die ("erreur de conexion:".$con->connect_error);
    }
    $req="INSERT INTO location_camion(nom,prenom,age,tel) VALUES ('$nom','$prenom','$age','$tel')" ;
    $res=mysqli_query($con,$req);
    
    ?>
    

    je n' ai pas d'erreur de syntaxe mais rien dans ma base de donnée

    en sachant que ma base s’appelle location et ma table location_camion

    je ne vois pas d'ou viens l'erreur

    merci cordialement

    • Partager sur Facebook
    • Partager sur Twitter
      14 octobre 2021 à 14:55:07

      Mets un mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); pour activer les erreurs mysqli.

      Surtout que là, outre les injections partout, la moindre ' dans les données fera obligatoirement planter ta requête. Prépare-la ou échappe par mysqli_real_escape_string (enfin, le conseil d'usage que l'on doit trouver partout).

      > if(isset($_POST['valider']));

      C'est faux ou plutôt ne sert à rien.

      -
      Edité par julp 14 octobre 2021 à 14:57:31

      • Partager sur Facebook
      • Partager sur Twitter
        14 octobre 2021 à 15:00:36

        bonjour 

        merci pour votre reponse mais pouvez vous me dire d'avantage 

        <p>formulaire oubligatoire a remplir</p>
        <form method="post" action="">
        <p> nom</p>
        <input type="text" name="nom" placeholder="votre nom" required="required">
        <p>prenom</p>
        <input type="text" name="prenom" placeholder="votre prenom"required="required"/>
        <p> age </p>
        <input type="text" name="age" placeholder="votre age" required="required" />
        <p>telephone</p>
        <input type="text" name="tel" placeholder="votre numero de telephone"required="required" />
        
        <br />
        <br />
        <input type="submit" name="valider" value="valider" />
        
        </form>
        <?php
        
        $nom=$_POST['nom'];
        $prenom=$_POST['prenom'];
        $age=$_POST['age'];
        $tel=$_POST['tel'];
        $con=new mysqli('localhost','root','root','location');
        if($con-> connect_error)
        {
        	die ("erreur de conexion:".$con->connect_error);
        }
        $req="INSERT INTO location_camion(nom,prenom,age,tel) VALUES ('$nom','$prenom','$age','$tel')" ;
        $res=mysqli_query($con,$req);
        mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
        
        ?>

        toujours rien dans ma base de donnée 

        je ne pence pas avoir de 

        '

        de trop enfin je pence pas 

        j'ai  beau chercher je vois pas d'erreur 

        merci cordialement


        -
        Edité par AndyduSecteur 14 octobre 2021 à 15:10:29

        • Partager sur Facebook
        • Partager sur Twitter
          14 octobre 2021 à 15:06:23

          Je ne peux pas faire mieux : il n'y a qu'à copier/coller le mysqli_report que j'ai donné en début de code PHP.

          Je m'étonne que tu n'aies même pas de notice quand tu arrives sur le formulaire donc soit le PHP n'est pas interprété soit tu travailles avec PHP qui n'est pas configuré pour afficher les erreurs (display_errors à off au lieu de on).

          Quand tu es sur ton formulaire, si tu fais afficher la source, est-ce que tu retrouves ton code PHP ?

          Si tu fais un phpinfo et que tu cherches dans sa sortie display_errors, quelle est sa valeur ?

          -
          Edité par julp 14 octobre 2021 à 15:08:13

          • Partager sur Facebook
          • Partager sur Twitter
            14 octobre 2021 à 15:22:49

            bonjour 

            maintenant j'ai pas touchez le code il me dit que mes variable n'etais pas defini alors que jai rien touchez 

            regardez mon code je vois pas ou sons les erreur mais variable sons nickel je comprend pas

            merci cordialement

            -
            Edité par AndyduSecteur 14 octobre 2021 à 16:25:10

            • Partager sur Facebook
            • Partager sur Twitter
              15 octobre 2021 à 10:44:28

              Salut, 

              Ta requête fonctionne de mon côté, est ce que tu peux faire juste après ta query un :

              var_dump($conn->error)

              Qu'est ce que cela te renvoi ?

              Privilégie aussi les requêtes préparées ou lieu d'injecter directement tes données par concaténation/interpolation, là t'es full vulnérable au injections SQL : https://www.php.net/manual/fr/mysqli.prepare.php

              -
              Edité par hippomssc 15 octobre 2021 à 15:53:55

              • Partager sur Facebook
              • Partager sur Twitter
                15 octobre 2021 à 11:30:04

                C'est normal, quand on arrive sur le formulaire ton code PHP est exécuté or les variables $_POST n'existent pas encore = tu as des notice: undefined index ...

                Il manque une condition vérifiant qu'elles existent à minima (isset). On doit toujours vérifier que ces variables "externes" existent avant de les utiliser.

                -
                Edité par julp 15 octobre 2021 à 11:31:52

                • Partager sur Facebook
                • Partager sur Twitter
                  15 octobre 2021 à 14:20:53

                  bonjour j'ai reussi a declarer mes variable de secoté la ses bon 

                  par contre j'ai un autre souci

                  je comprend pas 

                  j'ai se message d'erreur :

                   Fatal error: Uncaught exception 'mysqli_sql_exception' with message 'Incorrect integer value: '' for column 'age' at row 1' in C:

                  et

                   mysqli_sql_exception: Incorrect integer value: '' for column 'age' at row 1 in C:

                  voici mon code :

                  <form method="post" >
                  <p> nom</p>
                  <input type="text" name="nom" placeholder="votre nom" required="required">
                  <p>prenom</p>
                  <input type="text" name="prenom" placeholder="votre prenom"required="required"/>
                  <p> age </p>
                  <input type="text" name="age" placeholder="votre age" required="required" />
                  <p>telephone</p>
                  <input type="text" name="tel" placeholder="votre numero de telephone"required="required" />
                   
                  <br />
                  <br />
                  <input type="submit" name="valider" value="valider" />
                   
                  </form>
                  <?php
                  
                  $nom = isset($_POST['nom']);
                  $prenom = isset($_POST['prenom']);
                  $age = isset($_POST['age']);
                  $tel = isset($_POST['tel']);
                  
                  mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
                  $con=new mysqli('localhost','root','root','location');
                  if($con-> connect_error)
                  {
                      die ("erreur de conexion:".$con->connect_error);
                  }
                  $req="INSERT INTO location_camion(nom,prenom,age,telephone) VALUES ('$nom','$prenom','$age','$tel')" ;
                  $res=mysqli_query($con,$req);
                  
                  
                   
                  ?>
                  </form>
                  
                  
                  


                  il y a un probleme dans la colonne 'age' je pence  maisje vois pas ou

                  merci cordialement

                  -
                  Edité par AndyduSecteur 15 octobre 2021 à 14:22:36

                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 octobre 2021 à 14:25:03

                    Tes variables sont des booléens : ce n'est pas ici ni comme ça qu'il faut employer isset.

                    Et la cast de FALSE en string induite par l'interpolation donne '', ce que n'aime pas MySQL : tu lui donnes '' quand il attend un entier pour l'âge.

                    -
                    Edité par julp 15 octobre 2021 à 14:26:11

                    • Partager sur Facebook
                    • Partager sur Twitter
                      15 octobre 2021 à 14:49:08

                      bonjour 

                      merci je n'ai plus d'erreur 

                      mais quand je tape les info sur mon formulaire que je valide il me sort que des 1 dans ma base de donnée

                      il ne me sort pas les info du genre" nom prenom ect..."

                      mais que des 1 pourquoi ?

                      merci cordialement

                      -
                      Edité par AndyduSecteur 15 octobre 2021 à 15:02:36

                      • Partager sur Facebook
                      • Partager sur Twitter
                        15 octobre 2021 à 15:21:06

                        > mais que des 1 pourquoi ?

                        > Tes variables sont des booléens : ce n'est pas ici ni comme ça qu'il faut employer isset.

                        L'isset est vrai à présent, or la cast de TRUE en string induite par l'interpolation donne '1'.

                        Je rappelle que tu injectes toujours tes variables comme un gros bourrin directement dans la requête, ce qu'il ne faut JAMAIS faire, ça te vaut des injections SQL et une requête qui ne peut que planter si quelqu'un met la moindre ' dans les données ...

                        -
                        Edité par julp 15 octobre 2021 à 15:23:26

                        • Partager sur Facebook
                        • Partager sur Twitter

                        iprobleme insertion formulaire a base de donnée

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown