Problème pour envoyer les informations dans la bd

Résolu
GlobeVer9 -  
 GlobeVer9 -
Bonjour,

Je rencontre actuellement un problème pour envoyer les données dans ma base de donnée voici mon code :
          <?php
         if(isset($POST['valider']))
    {
        mysqli_connect("localhost","root","");
        mysqli_select_db("####");
        if(!$connection)
        {
            die('Erreur de connection'.mysqli_connect_error());
        }
        $nomCli = $_POST['nomCli'];
        $mailCli = $_POST['mailCli'];
        $pnomCli = $_POST['pnomCli'];
        $datNaisCli = $_POST['datNaisCli'];
        $vilCli = $_POST['vilCli'];
        $cpCli = $_POST['cpCli'];
        $adresCli = $_POST['adresCli'];
        $telCli = $_POST['telCli'];
        $mdpCli = $_POST['mdpCli'];
        
        $sql="INSERT INTO client( numCli , nomCli , pnomCli , mailCli , mdpCli , vilCli , adresCli , cpCli , telCli , datNaisCli ) VALUES( ' ', '$nomCli' , '$pnomCli' , '$mailCli' , '$mdpCli' , '$vilCli' , '$adresCli' , '$cpCli' , '$telCli' , '$datNaisCli') ;";
        
        if(!mysqli_query($connection, $sql))
        {
            die('ERREUR');
        }
        else
        {
        echo "Les info sont bien stockés";
        }
    }
    ?>


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.

3 réponses

  1. jee pee Messages postés 9437 Date d'inscription   Statut Modérateur Dernière intervention   9 973
     
    Salut,

    Sans regarder la syntaxe, intéressons nous à la logique.

    Tu initialises comment ton numéro de client ?

    Car là tu lui mets un blanc. Soit il attend un numéro et c'est une erreur, soit le programme plante à la deuxième création car tu essaies de créer un second client de même identifiant (un blanc).

    cdlt
    0
    1. GlobeVer9
       
      Salut pour le numéro client j'ai laissé un blanc puisque je l'ai mis en auto-incrément dans la BD que dois-je faire pour remédier au probleme?
      0
      1. jee pee Messages postés 9437 Date d'inscription   Statut Modérateur Dernière intervention   9 973 > GlobeVer9
         
        S'il est en auto incrément, l'id ne doit pas apparaitre dans l'insert
        0
      2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > jee pee Messages postés 9437 Date d'inscription   Statut Modérateur Dernière intervention  
         

        S'il est en auto incrément, l'id ne doit pas apparaitre dans l'insert
        En fait tu peux ... mais ce n'est ni utile ni conseillé
        (et en général .. on le met à NULL et non '' )
        0
      3. jee pee Messages postés 9437 Date d'inscription   Statut Modérateur Dernière intervention   9 973 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        là ce n'est pas '', c'est ' ', un blanc entre simple cote
        0
    2. GlobeVer9
       
      Ok je le retire
      0
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Fais donc un echo de ta variabe $sql
    Puis, avec le résultat de ce echo...vas tester ta requete DIRECTEMENT dans ta BDD (via phpmyadmin par exemple)
    0
    1. GlobeVer9
       
      J'ai fait un echo $sql; et j'ai tester la requete dans la bd ce message apparait:
      MySQL a retourné un résultat vide (aucune ligne)
      0
    2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > GlobeVer9
       
      donc pas d'erreur
      Mais ... est-ce que l'insertion s'est faite dans ta BDD ?
      0
    3. GlobeVer9
       
      Oui ça a insérer $nomCli, ...
      0
    4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > GlobeVer9
       
      heuuu.... je reprend...
      Tu fais un ECHO de ta requête ... ( normalement ça aura remplacé les variables par de "vraies" valeurs )
      Tu copie ce que le echo ta donné pour le tester dans ta BDD.

      Je ne t'ai pas demandé de testé la requête (de ton code source)... mais bien celle GÉNÉRÉE par ton code lorsque tu affiches ta page !!!!
      0
    5. GlobeVer9
       
      Le echo ne m'a rien renvoyer
      0
  3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    C'est normal que rien ne s'affiche .... tu ne retnres pas dans ton if
    if(isset($POST['valider']))
    

    ... $_POST et non $POST !!!!

    Voila ton code corrigé et "amélioré"

    Déjà .. place le code de connexion à ta BDD dans un fichier à part
    que tu n'auras qu'à inclure dans tes page
    <?php //fichier de connexion à la bdd : cnxBdd.php
    $connection=  mysqli_connect('localhost','root','','#####');
    if(!$connection) {
      die('Erreur de connection'.mysqli_connect_error());
    }
            
    ?>
    


    Pense aussi à récupérer PROPREMENT les variables AVANT de les utiliser.
    Ajoutes également la ligne error_reporting(E_ALL); pour afficher les erreurs php

    Ton code devient :
    <?php
    //Affichage des erreurs php
    error_reporting(E_ALL);
    
    // Connexion à la BDD
    require_once "cnxBdd.php";
    
     // Récupération PROPRE des variables AVANT de les utiliser
     function getVar($varName){
      return isset($_POST[$varName]) ? $_POST[$varName] : NULL;
     }
     
    $nomCli = getVar('nomCli') ;
    $mailCli =  getVar('mailCli');
    $pnomCli =  getVar('pnomCli');
    $datNaisCli =  getVar('datNaisCli');
    $vilCli =  getVar('vilCli');
    $cpCli =  getVar('cpCli');
    $adresCli =  getVar('adresCli');
    $telCli =  getVar('telCli');
    $mdpCli =  getVar('mdpCli');
        
    
    if(isset($_POST['valider'])) {
            
     $sql="INSERT INTO client( nomCli , pnomCli , mailCli , mdpCli , vilCli , adresCli , cpCli , telCli , datNaisCli ) 
                       VALUES('$nomCli' , '$pnomCli' , '$mailCli' , '$mdpCli' , '$vilCli' , '$adresCli' , '$cpCli' , '$telCli' , '$datNaisCli')";
     
     echo "<br> La requete est :<br>".$sql;//le temps des tests
     
     if(!mysqli_query($connection, $sql)){
       die('ERREUR');
     }else{
        echo "Les info sont bien stockés";
     }      
    
    }
    
    0
    1. GlobeVer9
       
      Je viens de tester et les "echo" ne s'affichent toujours pas et la BD n'est pas renseignée
      0
    2. GlobeVer9
       
      <! DOCTYPE HTML >

      <html>
      <head>
      <title>########</title>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width" />
      <link href="css/bootstrap.min.css" rel="stylesheet" />
      <link href="css/bootstrap-responsive.min.css" rel="stylesheet" />
      <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
      <script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
      <script src="js/bootstrap.min.js"></script>
      <link rel="stylesheet" type="text/css" href="CSSPerso/CssMenuDeroulant.css">
      </head>
      <?php include("Entete.php");?> <!-- Sert a inserer l'entete -->

      <body>
      <form>
      <div class = "forme-groupe">
      <center><label> Entrer votre e-mail </label></center>
      <center><input type =" input " name="mailCli"></center>
      </div>
      <br>
      <div class = "forme-groupe">
      <center><label> Confirmer votre mot de passe </label></center>
      <center><input type =" input " name="mailCli2"></center>
      </div>
      <br>
      <div class="forme-groupe">
      <center><label> Entrer votre nom </label></center>
      <center><input type="input" name="nomCli" ></center>
      </div>
      <br>
      <div class="forme-groupe">
      <center><label>Entrer votre prenom</label></center>
      <center><input type="input" name="pnomCli"></center>
      </div>
      <br>
      <div class="forme-groupe">
      <center><label>Entrer votre date de naissance (sous le format JJMMAAAA)</label></center>
      <center><input type="input" name="datNaisCli"</center>
      </div>
      <br>
      <div class="forme-groupe">
      <center><label>Entrer votre ville</label></center>
      <center><input type="input" name="vilCli"></center>
      </div>
      <br>
      <div class="forme-groupe">
      <center><label>Entrer votre adresse</label></center>
      <center><input type="input" name="adresCli"</center>
      </div>
      <br>

      <div class="forme-groupe">
      <center><label>Entrer votre code postal</label></center>
      <center><input type="input" name="cpCli"</center>
      </div>
      <br>
      <div class="forme-groupe">
      <center><label>Entrer votre numero de telephone</label></center>
      <center><input type="input" name="telCli"</center>
      <br>
      <div class = "forme-groupe">
      <center><label> Entrer votre mot de passe </label></center>
      <center><input type ="input" name="mdpCli"></center>
      </div>
      <br>
      <div class = "forme-groupe">
      <center><label> Confirmer votre mot de passe </label></center>
      <center><input type =" input " name="mdpCli2"></center>
      </div>

      <br>
      <center><button type="submit" name="valider" class="btn btn-default">Créer le compte</button></center>

      <?php
      //Affichage des erreurs php
      error_reporting(E_ALL);

      // Connexion à la BDD
      require_once "cnxBdd.php";

      // Récupération PROPRE des variables AVANT de les utiliser
      function getVar($varName){
      return isset($_POST[$varName]) ? $_POST[$varName] : NULL;
      }

      $nomCli = getVar('nomCli') ;
      $mailCli = getVar('mailCli');
      $pnomCli = getVar('pnomCli');
      $datNaisCli = getVar('datNaisCli');
      $vilCli = getVar('vilCli');
      $cpCli = getVar('cpCli');
      $adresCli = getVar('adresCli');
      $telCli = getVar('telCli');
      $mdpCli = getVar('mdpCli');


      if(isset($_POST['valider'])) {

      $sql="INSERT INTO client( nomCli , pnomCli , mailCli , mdpCli , vilCli , adresCli , cpCli , telCli , datNaisCli )
      VALUES('$nomCli' , '$pnomCli' , '$mailCli' , '$mdpCli' , '$vilCli' , '$adresCli' , '$cpCli' , '$telCli' , '$datNaisCli')";

      echo "<br> La requete est :<br>".$sql;//le temps des tests

      if(!mysqli_query($connection, $sql)){
      die('ERREUR');
      }else{
      echo "Les info sont bien stockés";
      }

      }
      ?>
      <br>
      <p class="text-center"> Vous avez déja un compte</p>
      <p class="text-center"> <a href="SeConnecter.php"> Cliquez ici !</a></p>
      </form>




      </body>





      </html>
      
          
      0
    3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > GlobeVer9
       
      **** Attention ****
      Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
      Explications disponibles ici :
      https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

      .

      **** Attention ****
      Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
      Explications disponibles ici :
      https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

      .

      **** Attention ****
      Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
      Explications disponibles ici :
      https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

      .
      *

      !!!!!!
      0
    4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Peux tu faire un
       print_r($_POST);

      Au début de ton code (avant le IF ) et me coller le résultat ?
      0
    5. GlobeVer9
       
      ca m'affiche ca : Array ( ) en bas de l'cran il te faut un screan?
      0