Problème pour envoyer les informations dans la bd

Résolu/Fermé
GlobeVer9 - Modifié par jordane45 le 2/06/2016 à 11:57
 GlobeVer9 - 2 juin 2016 à 15:42
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

jee pee Messages postés 39585 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 19 avril 2024 9 225
2 juin 2016 à 11:37
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
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
jee pee Messages postés 39585 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 19 avril 2024 9 225 > GlobeVer9
2 juin 2016 à 12:01
S'il est en auto incrément, l'id ne doit pas apparaitre dans l'insert
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > jee pee Messages postés 39585 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 19 avril 2024
2 juin 2016 à 12:02

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
jee pee Messages postés 39585 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 19 avril 2024 9 225 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
2 juin 2016 à 12:03
là ce n'est pas '', c'est ' ', un blanc entre simple cote
0
Ok je le retire
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
2 juin 2016 à 11:58
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
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
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > GlobeVer9
2 juin 2016 à 12:45
donc pas d'erreur
Mais ... est-ce que l'insertion s'est faite dans ta BDD ?
0
Oui ça a insérer $nomCli, ...
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > GlobeVer9
2 juin 2016 à 13:00
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
Le echo ne m'a rien renvoyer
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié par jordane45 le 2/06/2016 à 14:34
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
Je viens de tester et les "echo" ne s'affichent toujours pas et la BD n'est pas renseignée
0
<! 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
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > GlobeVer9
2 juin 2016 à 15:07
**** 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
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
Modifié par jordane45 le 2/06/2016 à 15:08
Peux tu faire un
 print_r($_POST);

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