Formulaire de contact php

sarnide -  
 sarnide -
Bonjour,
je créer un site et je suis a un formulaire, j'ai suivies ce tuto http://www.youtube.com/watch?feature=player_embedded&v=i8byuKn_r1E
j'ai fais le formulaire sans problème le seul problème et que la connexion avec la base de donnée ne fonctionne pas j'ai aucune erreur qui s'affiche seul que quand je remplie le formulaire et que j'appuie sur valider je n'est pas les informations dans ma base de donnée pourquoi ?

Le code :
<?php
$nou=mysql_query("INSERT INTO clients VALUES('$nom','$prénom','$date_de_naissance','$adresse','$ville','$cp','$pays,'civil','email')");
$serveur = "localhost";
$base = "phplogin";
$user = "client";
$pass = "contact14528";
?>
<form method="POST" action="nouveauxclient.php">
<p>Nom</p>
<input type="text" name="Nom"/>
<p>Prénom</p>
<input type="text" name="Prénom"/>
<p>Date de naissance</p>
<input type="text" name="Date_de_naissance"/>
<p>Adresse</p>
<input type="text" name="Adresse"/>
<p>Ville</p>
<input type="text" name="Ville"/>
<p>Code Postal</p>
<input type="text" name="Cp"/>
<p>Pays</p>
<input type="text" name="Pays"/>
<p>Civil</p>
<input type="text" name="Civil"/>
<p>Email</p>
<input type="text" name="Email"/><br/><br>
<input type="submit" name="Validez" value="Valider"/>
</form>


Merci d'avoir lu mon topic !

17 réponses

Résumé de la discussion

Le problème principal est que les données du formulaire ne s’insèrent pas dans la base de données, faute à des erreurs PHP et SQL dans la requête INSERT. Des erreurs courantes incluent une connexion non établie avant la requête, des noms de colonnes ou variables mal écrits (accents, casse) et un INSERT sans liste de colonnes ni virgule finale. Pour corriger, établir la connexion avant mysql_query et utiliser des noms de variables cohérents sans accents, puis appeler la requête INSERT en listant explicitement les colonnes et en évitant les virgules superflues. En cas d'erreurs visibles, afficher les messages SQL via die(mysql_error()) permet d'identifier rapidement les problèmes de syntaxe, comme le mauvais nom de champ ou une virgule supplémentaire.

Bobot (l'IA à votre service)
  1. tidjool
     
    Bonjour,

    il manque les champs de ta table :

    $nou=mysql_query("INSERT INTO clients (nom, prenom, etc...) VALUES('$nom','$prénom','$date_de_naissance','$adresse','$ville','$cp','$pays,'civil','email')");

    à adapter selon les noms de tes champs bien sûr ;-)
    0
  2. sarnide
     
    Merci beaucoup mais voila j'ai des erreurs !

    voila le screen

    http://img11.hostingpics.net/pics/172735screen1.png
    0
    1. tidjool
       
      On peut voir le code du fichier nouveauxclient.php stp?
      0
  3. sarnide
     
    Oui le vocii

    <?php 
    $connect= mysql_connect('localhost','client','contact145623'); 
    mysql_select_db("phplogin");  
    mysql_query("INSERT INTO phplogin VALUES('', '$nom', '$prénom', '$date_de_naissance','$adresse','$ville','$cp','$pays','$civil','$email')");  
    ?> 
    <form method="POST" action="nouveauxclient.php"> 
    <p>Nom</p> 
    <input type="text" name="Nom"/> 
    <p>Prénom</p> 
    <input type="text" name="Prénom"/> 
    <p>Date de naissance</p> 
    <input type="text" name="Date_de_naissance"/> 
    <p>Adresse</p> 
    <input type="text" name="Adresse"/> 
    <p>Ville</p> 
    <input type="text" name="Ville"/> 
    <p>Code Postal</p> 
    <input type="text" name="Cp"/> 
    <p>Pays</p> 
    <input type="text" name="Pays"/> 
    <p>Civil</p> 
    <input type="text" name="Civil"/> 
    <p>Email</p> 
    <input type="text" name="Email"/><br/><br> 
    <input type="submit" name="Validez" value="Valider"/> 
    </form> 
    
    0
    1. tidjool
       
      ah ok !
      Il faut que pour chaque variable que tu récupères, lui assigner une valeur. Exemple :
      $nom = $_POST['Nom']; etc...

      fais le avant la requête. Bon courage
      0
    2. tidjool
       
      Mais au fait, moi je séparerai les deux parties de ton code. Je ferai une page (exemple créerclient.php) et une page avec le formulaire (nouveauclient.php )
      0
    3. tidjool
       
      ou alors tester si les champs sont vides et dans ce cas, ne pas faire d'insert :

      <?php
      if (isset($nom)) {
      $connect= mysql_connect('localhost','client','contact145623');
      mysql_select_db("phplogin");
      mysql_query("INSERT INTO phplogin VALUES('', '$nom',
      '$prénom','$date_de_naissance','$adresse','$ville','$cp','$pays','$civil','$email')");
      }
      ?>
      0
  4. sarnide
     
    Merci mais tu appelle quoi requête ?
    0
    1. tidjool
       
      mysql_query
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sarnide
     
    ton dernier code avec if il n'y as plus d'erreur mais les info ne vont pas dans la base de donnée voici le code :
    <?php
    if (isset($nom)) {
    
        $connect= mysql_connect('localhost','client','contact145623'); 
    
        mysql_select_db("phplogin");  
    
        mysql_query("INSERT INTO phplogin VALUES('', '$nom', '$prénom','$date_de_naissance','$adresse','$ville','$cp','$pays','$civil','$email')");  
    
    }
    
    ?>
    <form method="POST" action="nouveauxclient.php">
    <p>Nom</p>
    <input type="text" name="Nom"/>
    <p>Prénom</p>
    <input type="text" name="Prénom"/>
    <p>Date de naissance</p>
    <input type="text" name="Date_de_naissance"/>
    <p>Adresse</p>
    <input type="text" name="Adresse"/>
    <p>Ville</p>
    <input type="text" name="Ville"/>
    <p>Code Postal</p>
    <input type="text" name="Cp"/>
    <p>Pays</p>
    <input type="text" name="Pays"/>
    <p>Civil</p>
    <input type="text" name="Civil"/>
    <p>Email</p>
    <input type="text" name="Email"/><br/><br>
    <input type="submit" name="Validez" value="Valider"/>
    </form>


    Et j'essaye l'autres
    0
    1. tidjool
       
      as-tu rempli toutes tes variables ?
      $nom = $_POST['Nom'];
      $prenom = $_POST['Prenom']; au fait, ne pas d'accents dans tes variables !!!
      0
  7. sarnide
     
    POur l'autres $nom = $_POST['Nom']; Il y a une erreur Parse error: syntax error, unexpected '[' in C:\wamp\www\nouveauxclient.php on line 7
    et le formulaire ne s'affiche pas ! et le code est :

     
    <?php
    if (isset($nom)) {
    
        $connect= mysql_connect('localhost','client','31p71h49'); 
    
        mysql_select_db("phplogin");  
    	$nom = $_POST['Nom'];['prénom];['date_de_naissance'];['adresse']; ['ville']; ['cp']; ['pays']; ['civil']; ['email']; 
    	$nou=mysql_query("INSERT INTO clients VALUES('$nom','$prénom','$date_de_naissance','$adresse','$ville','$cp','$pays,'$civil','$email')");
    
    }
    
    ?>
    <form method="POST" action="nouveauxclient.php">
    <p>Nom</p>
    <input type="text" name="Nom"/>
    <p>Prénom</p>
    <input type="text" name="Prénom"/>
    <p>Date de naissance</p>
    <input type="text" name="Date_de_naissance"/>
    <p>Adresse</p>
    <input type="text" name="Adresse"/>
    <p>Ville</p>
    <input type="text" name="Ville"/>
    <p>Code Postal</p>
    <input type="text" name="Cp"/>
    <p>Pays</p>
    <input type="text" name="Pays"/>
    <p>Civil</p>
    <input type="text" name="Civil"/>
    <p>Email</p>
    <input type="text" name="Email"/><br/><br>
    <input type="submit" name="Validez" value="Valider"/>
    </form>
    0
    1. tidjool
       
      $nom = $_POST['Nom'];
      $prenom =$_POST['prenom];
      $date_de_naissance = $_Post['date_de_naissance'];
      ainsi de suite et surtout pas d'accents
      0
    2. sarnide
       
      Ok j'essaye ! je te dis sa
      0
    3. tidjool
       
      Et sors tes variables avant le if :
      vois ton fichier en trois parties :


      ------------1 les variables---------------------
      $nom = $_POST['Nom'];
      $prenom =$_POST['prenom];
      $date_de_naissance = $_Post['date_de_naissance'];
      etc...

      ------------2 la requete a exécuter si les champs ont été renseignés --------------
      if () {
      la requete sql qui inscrit un nouveau client
      }

      ----------------3 le formulaire de saisi -------------------------
      le formulaire
      0
  8. sarnide
     
    (!) SCREAM: suppression d'erreur ignoré pour
    (!) Parse error: syntax error, T_STRING inattendu, attendait ']' dans C: \ wamp \ www \ nouveauxclient.php en ligne 9

    Merci avec
    $nom = $_POST['Nom'];
    $prenom =$_POST['prenom];
    $date_de_naissance = $_Post['date_de_naissance']; cela marque l'erreur ci-dessous

    le code :
    <?php
    if (isset($nom)) {
    
        $connect= mysql_connect('localhost','client','31p71h49'); 
    
        mysql_select_db("phplogin");  
    	$nom = $_POST['Nom']; 
        $prenom =$_POST['prenom]; 
        $date_de_naissance = $_Post['date_de_naissance']; 
    	$adresse = $_POST['adresse']; 
    	$ville = $_POST['ville']; 
    	$cp= $_POST['cp']; 
    	$pays = $_POST['pays']; 
        $civil = $_POST['civil']; 
    	$email = $_POST['email']; 
    
    
        mysql_query("INSERT INTO phplogin VALUES('', '$nom', '$prenom','$date_de_naissance','$adresse','$ville','$cp','$pays','$civil','$email')");  
    
    }
    
    ?>
    <form method="POST" action="nouveauxclient.php">
    <p>Nom</p>
    <input type="text" name="Nom"/>
    <p>Prénom</p>
    <input type="text" name="Prénom"/>
    <p>Date de naissance</p>
    <input type="text" name="Date_de_naissance"/>
    <p>Adresse</p>
    <input type="text" name="Adresse"/>
    <p>Ville</p>
    <input type="text" name="Ville"/>
    <p>Code Postal</p>
    <input type="text" name="Cp"/>
    <p>Pays</p>
    <input type="text" name="Pays"/>
    <p>Civil</p>
    <input type="text" name="Civil"/>
    <p>Email</p>
    <input type="text" name="Email"/><br/><br>
    <input type="submit" name="Validez" value="Valider"/>
    </form>
    0
    1. sarnide
       
      la ligne - est la date_de_naissance
      0
    2. tidjool
       
      Il faut respecter la casse, c'est à dire les mauscules aussi ;-)
      date_de_naissance --> Date_de_naissance
      0
    3. tidjool
       
      en fait les "name" de ton form doivent être écrits pareil que dans les $_Post, tu vois?
      0
    4. sarnide
       
      En gros $Date_de_naissance =$_Post['Date_de_naissance'];
      0
    5. tidjool
       
      oui
      0
  9. sarnide
     
    Voici le code
    <?php
    
        $Nom = $_POST['Nom']; 
        $Prenom =$_POST['Prenom]; 
    	$Date_de_naissance = $_POST['Date_de_naissance']; 
    	$Adresse =$_POST['Adresse']; 
    	$Ville = $_POST['Ville']; 
    	$Cp= $_POST['Cp']; 
    	$Pays = $_POST['Pays']; 
        $Civil = $_POST['Civil']; 
    	$Email = $_POST['Email']; 
    
        $connect= mysql_connect('localhost','client','31p71h49'); 
    
        mysql_select_db("phplogin");  
    	
        mysql_query("INSERT INTO phplogin VALUES('', '$nom', '$prenom','$date_de_naissance','$adresse','$ville','$cp','$pays','$civil','$email')");  
    ?>
    <form method="POST" action="nouveauxclient.php">
    <p>Nom</p>
    <input type="text" name="Nom"/>
    <p>Prénom</p>
    <input type="text" name="Prénom"/>
    <p>Date de naissance</p>
    <input type="text" name="Date_de_naissance"/>
    <p>Adresse</p>
    <input type="text" name="Adresse"/>
    <p>Ville</p>
    <input type="text" name="Ville"/>
    <p>Code Postal</p>
    <input type="text" name="Cp"/>
    <p>Pays</p>
    <input type="text" name="Pays"/>
    <p>Civil</p>
    <input type="text" name="Civil"/>
    <p>Email</p>
    <input type="text" name="Email"/><br/><br>
    <input type="submit" name="Validez" value="Valider"/>
    </form>
    0
    1. tidjool
       
      vois ton fichier en trois parties : (de plus il manque les champs de ta base dans ta requete


      ------------1 les variables---------------------
      $nom = $_POST['Nom'];
      $prenom =$_POST['Prenom];
      $date_de_naissance = $_Post['Date_de_naissance'];
      etc...

      ------------2 la requete a exécuter si les champs ont été renseignés --------------
      if (blabla) {
      //la requete sql qui inscrit un nouveau client
      $connect= mysql_connect('localhost','client','31p71h49');

      mysql_select_db("phplogin");

      mysql_query("INSERT INTO (Nom, Prenom, etc...) phplogin VALUES('', '$nom', '$prenom','$date_de_naissance','$adresse','$ville','$cp','$pays','$civil','$email')");
      }

      ----------------3 le formulaire de saisi -------------------------
      le formulaire
      0
  10. sarnide
     
    up s'il vous plait !
    0
    1. tidjool
       
      up
      0
    2. sarnide
       
      je met quoi dans if déjà ?
      0
    3. tidjool
       
      par exemple un test si la variable $nom existe et est renseignée :
      if (isset($nom) && $nom!="") {
      ta requête
      }
      0
    4. sarnide
       
      d'accord donc je renseigne rien dans if (isset($nom) && $nom!="ICI")
      0
    5. tidjool
       
      oui car ici, il s'agit de tester si $nom existe et qu'elle ne soit pas égale à "" (càd rien)
      0
  11. sarnide
     
    Il y a toujorus l'erreur a la ligne 9 date de naissance !
    0
    1. tidjool
       
      sous quelle forme est la date ? JJ/MM/AAAA ou AAAA-MM-JJ ?
      0
    2. sarnide
       
      dans la base de donéées c'est AAAA-MM-JJ
      0
  12. tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   220
     
    $_POST['Date_de_naissance'] doit impérativement retourner une valeur sous la forme AAAA-MM-JJ, sinon mysql râle.
    Par ailleurs, si vous utilisez une variable comme $Nom, vous devez utilisez la même variable dans votre requête et non tout en minuscule $nom.
    0
  13. sarnide
     
    En faisant ce que as dit tryan44 voici l'erreur

    (!) Parse error: syntax error, T_IS_NOT_EQUAL inattendu, attendait »,« ou »)« dans C: \ wamp \ www \ nouveauxclient.php en ligne 12
    et voici mon code
    <?php
    
        $Nom = $_POST['Nom']; 
        $Prenom =$_POST['Prenom']; 
    	$Date_de_naissance = $_POST['Date_de_naissance']; 
    	$Adresse =$_POST['Adresse']; 
    	$Ville = $_POST['Ville']; 
    	$Cp= $_POST['Cp']; 
    	$Pays = $_POST['Pays']; 
        $Civil = $_POST['Civil']; 
    	$Email = $_POST['Email']; 
    if (isset($Nom!=""$Prenom!=""$Date_de_naissance!=""$Adresse!="")$Ville!=""$Cp!="")$Pays!=""$Civil!="")$Email!="")
     $connect= mysql_connect('localhost','client','31p71h49'); 
        mysql_select_db("phplogin");  
        mysql_query("INSERT INTO (Nom, Prenom,Date_de_naissance,Adresse,Ville,Cp,Pays,Civil,Email phplogin VALUES('', '$nom', '$prenom','$date_de_naissance','$adresse','$ville','$cp','$pays','$civil','$email')");  
    	}
    
    ?>
    <form method="POST" action="nouveauxclient.php">
    <p>Nom</p>
    <input type="text" name="Nom"/>
    <p>Prénom</p>
    <input type="text" name="Prénom"/>
    <p>Date de naissance</p>
    <input type="text" name="Date_de_naissance"/>
    <p>Adresse</p>
    <input type="text" name="Adresse"/>
    <p>Ville</p>
    <input type="text" name="Ville"/>
    <p>Code Postal</p>
    <input type="text" name="Cp"/>
    <p>Pays</p>
    <input type="text" name="Pays"/>
    <p>Civil</p>
    <input type="text" name="Civil"/>
    <p>Email</p>
    <input type="text" name="Email"/><br/><br>
    <input type="submit" name="Validez" value="Valider"/>
    </form>
    0
    1. flokocha Messages postés 1519 Statut Membre 281
       
      Beaucoup d'erreurs dans cette portion de code :

      (isset($Nom!=""$Prenom!=""$Date_de_naissance!=""$Adresse!="")$Ville!=""$Cp!="")$Pays!=""$Civil!="")$Email!="")  
       $connect= mysql_connect('localhost','client','31p71h49');   
          mysql_select_db("phplogin");    
          mysql_query("INSERT INTO (Nom, Prenom,Date_de_naissance,Adresse,Ville,Cp,Pays,Civil,Email phplogin VALUES('', '$nom', '$prenom','$date_de_naissance','$adresse','$ville','$cp','$pays','$civil','$email')");  


      1 - La fonction isset() sert à vérifier qu'une variable est définie et différente de null. On ne peut donc pas lui passer en argument des comparaisons entre variables.
      2 - Les différentes conditions exprimées dans un if doivent être séparées par des opérateurs logiques.
      3 - Toujours au sein de ce if, il y a 4 parenthèses fermantes pour seulement 2 ouvrantes...
      4 - Au niveau de la requête d'insertion, il manque une virgule entre les noms des deux derniers champs.
      5 - Il manque une parenthèse fermante après la définition des champs.
      6 - "Nom" est annoncé comme le premier champ à remplir, tandis que plus loin la variable $nom n'est renseignée qu'en deuxième position.
      7 - "phplogin" est annoncé comme le dernier champ à remplir, tandis que la dernière variable insérée est $email.
      8 (je l'avais loupé) - Les instructions du if doivent être encadrées par des accolades.
      0
  14. sarnide
     
    Merci flokocha toujours même problème mais voici le code !
    
    <?php
    
        $Nom = $_POST['Nom']; 
        $Prenom =$_POST['Prenom']; 
    	$Date_de_naissance = $_POST['Date_de_naissance']; 
    	$Adresse =$_POST['Adresse']; 
    	$Ville = $_POST['Ville']; 
    	$Cp= $_POST['Cp']; 
    	$Pays = $_POST['Pays']; 
        $Civil = $_POST['Civil']; 
    	$Email = $_POST['Email']; 
    	{
    if (isset($Nom!=""$Prenom!=""$Date_de_naissance!=""$Adresse!=""$Ville!=""$Cp!=""$Pays!=""$Civil!=""$Email!=""))
     $connect= mysql_connect('localhost','client','31p71h49'); 
        mysql_select_db("phplogin");  
        mysql_query("INSERT INTO (Nom, Prenom,Date_de_naissance,Adresse,Ville,Cp,Pays,Civil,Email) phplogin VALUES('$nom', '$prenom','$date_de_naissance','$adresse','$ville','$cp','$pays','$civil','$email')");   
    	}
    
    ?>
    <form method="POST" action="nouveauxclient.php">
    <p>Nom</p>
    <input type="text" name="Nom"/>
    <p>Prénom</p>
    <input type="text" name="Prénom"/>
    <p>Date de naissance</p>
    <input type="text" name="Date_de_naissance"/>
    <p>Adresse</p>
    <input type="text" name="Adresse"/>
    <p>Ville</p>
    <input type="text" name="Ville"/>
    <p>Code Postal</p>
    <input type="text" name="Cp"/>
    <p>Pays</p>
    <input type="text" name="Pays"/>
    <p>Civil</p>
    <input type="text" name="Civil"/>
    <p>Email</p>
    <input type="text" name="Email"/><br/><br>
    <input type="submit" name="Validez" value="Valider"/>
    </form>
    0
    1. flokocha Messages postés 1519 Statut Membre 281
       
      Normal : mêmes erreurs, même résultat !

      1 - La fonction isset() sert à vérifier qu'une variable est définie et différente de null. On ne peut donc pas lui passer en argument des comparaisons entre variables.
      2 - Les différentes conditions exprimées dans un if doivent être séparées par des opérateurs logiques.
      3 (réglé) - Toujours au sein de ce if, il y a 4 parenthèses fermantes pour seulement 2 ouvrantes...
      4 (réglé) - Au niveau de la requête d'insertion, il manque une virgule entre les noms des deux derniers champs.
      5 (réglé) - Il manque une parenthèse fermante après la définition des champs.
      6 (réglé) - "Nom" est annoncé comme le premier champ à remplir, tandis que plus loin la variable $nom n'est renseignée qu'en deuxième position.
      7 (réglé) - "phplogin" est annoncé comme le dernier champ à remplir, tandis que la dernière variable insérée est $email.
      8 (je l'avais loupé) - Les instructions du if doivent être encadrées par des accolades.

      Nouvelles erreurs :

      9 - L'accolade ouvrante du if ne peut pas être placée avant le if, mais après l'expression de sa condition.
      10 - Le nom de la table ciblée pour l'insertion doit être inscrit immédiatement après le INSERT INTO.
      0
    2. sarnide
       
      Je ne sais pas ou metre le {
      0
    3. flokocha Messages postés 1519 Statut Membre 281
       
      if (conditions) {
      intructions
      }

      Mais intéresse-toi également aux deux premiers points, car c'est pour l'instant eux qui sont directement à l'origine de l'erreur que tu obtiens.
      0
    4. sarnide
       
      donc if (isset($Nom!=""$Prenom!=""$Date_de_naissance!=""$Adresse!=""$Ville!=""$Cp!=""$Pays!=""$Civil!=""$Email!="")){
      0
    5. flokocha Messages postés 1519 Statut Membre 281
       
      Exactement (pour ce qui est de l'accolade seulement) !

      (PS : désolé de ne pas te donner directement les réponses, mais je pense te rendre davantage service en t'aidant à chercher par toi même et ainsi à comprendre un minimum ce que tu fais)
      0
  15. sarnide
     
    Donc le code final est
    <?php
    
        $Nom = $_POST['Nom']; 
        $Prenom =$_POST['Prenom']; 
    	$Date_de_naissance = $_POST['Date_de_naissance']; 
    	$Adresse =$_POST['Adresse']; 
    	$Ville = $_POST['Ville']; 
    	$Cp= $_POST['Cp']; 
    	$Pays = $_POST['Pays']; 
        $Civil = $_POST['Civil']; 
    	$Email = $_POST['Email']; 
    if (isset($Nom!=""$Prenom!=""$Date_de_naissance!=""$Adresse!=""$Ville!=""$Cp!=""$Pays!=""$Civil!=""$Email!="")){
     $connect= mysql_connect('localhost','client','31p71h49'); 
        mysql_select_db("phplogin");  
        mysql_query("INSERT INTO clients (Nom, Prenom,Date_de_naissance,Adresse,Ville,Cp,Pays,Civil,Email) VALUES('$nom', '$prenom','$date_de_naissance','$adresse','$ville','$cp','$pays','$civil','$email')");   
    	}
    
    ?>
    <form method="POST" action="nouveauxclient.php">
    <p>Nom</p>
    <input type="text" name="Nom"/>
    <p>Prénom</p>
    <input type="text" name="Prénom"/>
    <p>Date de naissance</p>
    <input type="text" name="Date_de_naissance"/>
    <p>Adresse</p>
    <input type="text" name="Adresse"/>
    <p>Ville</p>
    <input type="text" name="Ville"/>
    <p>Code Postal</p>
    <input type="text" name="Cp"/>
    <p>Pays</p>
    <input type="text" name="Pays"/>
    <p>Civil</p>
    <input type="text" name="Civil"/>
    <p>Email</p>
    <input type="text" name="Email"/><br/><br>
    <input type="submit" name="Validez" value="Valider"/>
    </form>
    Si c'est cela il y a une erreur et je ne voie pas le formulaire vocii l'erreur !

    (!) Parse error: syntax error, T_IS_NOT_EQUAL inattendu, attendait »,« ou »)« dans C: \ wamp \ www \ nouveauxclient.php en ligne 12
    0
    1. flokocha Messages postés 1519 Statut Membre 281
       
      Ok, il ne reste donc que les deux premières erreurs :

      1 - La fonction isset() sert à vérifier qu'une variable est définie et différente de null. On ne peut donc pas lui passer en argument des comparaisons entre variables.
      2 - Les différentes conditions exprimées dans un if doivent être séparées par des opérateurs logiques.

      Je t'aiguille un petit peu plus :

      isset() sert à vérifier qu'une variable est définie et non nulle. Elle doit donc te servir à vérifier si les les données de ton formulaire ont été transmises ou non.

      C'est donc avant de définir tes variables $nom, $prenom, etc. qu'il faut vérifier si les $_POST['nom'], $_POST['prenom'], etc. sont bien définis :

      ex :
       if (isset($_POST['nom']) && isset($_POST['prenom']) && $_POST['nom'] != "" && $_POST['prenom'] != "") { 
          $nom = $_POST['nom']; 
          $prenom = $_POST['prenom']; 
      }


      Tu remarqueras la présence dans la condition du if de l'opérateur && qui signifie "et", et qui oblige donc à ce que toutes les conditions soient remplies pour entrer dans les instructions du if.

      Je te laisse en déduire le reste... :)
      0
    2. sarnide
       
      Peux tu me donner le code s'il te plait ou m'expliquer plus clairement je ne comprend pas !
      0
    3. sarnide
       
      en gros sa
      <?php 
      if (isset($Nom!=""$Prenom!=""$Date_de_naissance!=""$Adresse!=""$Ville!=""$Cp!=""$Pays!=""$Civil!=""$Email!="")){ 
          $Nom = $_POST['Nom'];  
          $Prenom =$_POST['Prenom'];  
       $Date_de_naissance = $_POST['Date_de_naissance'];  
       $Adresse =$_POST['Adresse'];  
       $Ville = $_POST['Ville'];  
       $Cp= $_POST['Cp'];  
       $Pays = $_POST['Pays'];  
          $Civil = $_POST['Civil'];  
       $Email = $_POST['Email'];  
       $connect= mysql_connect('localhost','client','31p71h49');  
          mysql_select_db("phplogin");   
          mysql_query("INSERT INTO clients (Nom, Prenom,Date_de_naissance,Adresse,Ville,Cp,Pays,Civil,Email,)VALUES('$nom','$prenom','$date_de_naissance','$adresse','$ville','$cp','$pays','$civil','$email',)");    
       } 
      
      ?> 
      <form method="POST" action="nouveauxclient.php"> 
      <p>Nom</p> 
      <input type="text" name="Nom"/> 
      <p>Prénom</p> 
      <input type="text" name="Prénom"/> 
      <p>Date de naissance</p> 
      <input type="text" name="Date_de_naissance"/> 
      <p>Adresse</p> 
      <input type="text" name="Adresse"/> 
      <p>Ville</p> 
      <input type="text" name="Ville"/> 
      <p>Code Postal</p> 
      <input type="text" name="Cp"/> 
      <p>Pays</p> 
      <input type="text" name="Pays"/> 
      <p>Civil</p> 
      <input type="text" name="Civil"/> 
      <p>Email</p> 
      <input type="text" name="Email"/><br/><br> 
      <input type="submit" name="Validez" value="Valider"/> 
      </form>
      0
    4. flokocha Messages postés 1519 Statut Membre 281
       
      Je ne vois pas comment être plus clair :

      - isset($Nom!=""$Prenom) est une erreur. isset() sert à vérifier si UNE variable est définie.
      >> isset($Nom) && isset($Prenom) && $Nom != "" && $Prenom != ""

      - Ce n'est pas $Nom que tu dois vérifier, mais ce qui est passé par ton formulaire, donc $_POST['nom']

      - PS : tu as une virgule en trop dans ton insert après "email"
      - PS2 : $Nom et $nom sont deux variables différentes. Dans ton code actuel tu utilises une fois l'un, une fois l'autre.
      0
  16. sarnide
     
    Merci le code est terminé mais une petit erreur reste donc voici le code
    <?php
    
        $Nom = $_POST['Nom']; 
        $Prenom =$_POST['Prenom']; 
    	$Date_de_naissance = $_POST['Date_de_naissance']; 
    	$Adresse =$_POST['Adresse']; 
    	$Ville = $_POST['Ville']; 
    	$Cp= $_POST['Cp']; 
    	$Pays = $_POST['Pays']; 
        $Civil = $_POST['Civil']; 
    	$Email = $_POST['Email']; 
    	if(isset($Nom) && isset($Prenom) && isset($Date_de_naissance) && isset($Adresse) && isset($Ville) && isset($Cp) && isset($Pays) && isset($Civil) && isset($Email) && $Nom != "" && $Prenom != "" && $Date_de_naissance != "" && $Adresse != "" && $Ville != "" && $Cp != "" && $Pays != "" && $Civil != "" && $Email != ""){
     $connect= mysql_connect('localhost','client','31p71h49'); 
        mysql_select_db("phplogin");  
        mysql_query("INSERT INTO clients (Nom, Prenom,Date_de_naissance,Adresse,Ville,Cp,Pays,Civil,Email,)VALUES('$nom','$prenom','$date_de_naissance','$adresse','$ville','$cp','$pays','$civil','$email')");   
    	}
    
    ?>
    <form method="POST" action="nouveauxclient.php">
    <p>Nom</p>
    <input type="text" name="Nom"/>
    <p>Prénom</p>
    <input type="text" name="Prénom"/>
    <p>Date de naissance</p>
    <input type="text" name="Date_de_naissance"/>
    <p>Adresse</p>
    <input type="text" name="Adresse"/>
    <p>Ville</p>
    <input type="text" name="Ville"/>
    <p>Code Postal</p>
    <input type="text" name="Cp"/>
    <p>Pays</p>
    <input type="text" name="Pays"/>
    <p>Civil</p>
    <input type="text" name="Civil"/>
    <p>Email</p>
    <input type="text" name="Email"/><br/><br>
    <input type="submit" name="Validez" value="Valider"/>
    </form>


    Et voici l'erreur

    (!) Notice: Undefined index: Prenom dans C: \ wamp \ www \ nouveauxclient.php en ligne 4
    Pile d'appels
    # Temps Mémoire Fonction Emplacement
    1 0,0012 691808 {Main} () .. \ Nouveauxclient.php : 0

    Mais maintenant je vois le formulaire !
    0
    1. flokocha Messages postés 1519 Statut Membre 281
       
      L'erreur que tu obtiens proviens du fait que tu as mis un accent dans le nom de ton input dans ton formulaire.

      Et l'erreur est obtenue justement parce que $_POST['Prenom'] n'est pas défini...

      C'est pour ça qu'il faut effectuer la vérification AVANT de créer ta variable intermédiaire $Prenom, comme je te l'ai expliqué avec cet exemple :
      if (isset($_POST['nom']) && isset($_POST['prenom']) && $_POST['nom'] != "" && $_POST['prenom'] != "") { 
          $nom = $_POST['nom']; 
          $prenom = $_POST['prenom']; 
      }
      


      PS : Tu utilises toujours dans ton INSERT des variables écrites entièrement en minuscules... ($Nom et $nom sont différents)
      0
    2. sarnide
       
      Donc dans mon insert je doit metre nom en Nom ?
      0
    3. flokocha Messages postés 1519 Statut Membre 281
       
      C'est une solution oui. Soit tu utilises $nom partout, ou soit tu utilises $Nom partout.
      0
    4. sarnide
       
      Merci il n'y as plus d'erreur mais les info ne vont pas dans la base pourquoi voici mon code
      <?php
      
          $Nom = $_POST['Nom']; 
          $Prenom =$_POST['Prenom']; 
      	$Date_de_naissance = $_POST['Date_de_naissance']; 
      	$Adresse =$_POST['Adresse']; 
      	$Ville = $_POST['Ville']; 
      	$Cp= $_POST['Cp']; 
      	$Pays = $_POST['Pays']; 
          $Civil = $_POST['Civil']; 
      	$Email = $_POST['Email']; 
      	if(isset($Nom) && isset($Prenom) && isset($Date_de_naissance) && isset($Adresse) && isset($Ville) && isset($Cp) && isset($Pays) && isset($Civil) && isset($Email) && $Nom != "" && $Prenom != "" && $Date_de_naissance != "" && $Adresse != "" && $Ville != "" && $Cp != "" && $Pays != "" && $Civil != "" && $Email != ""){
       $connect= mysql_connect('localhost','client','31p71h49'); 
          mysql_select_db("phplogin");  
          mysql_query("INSERT INTO clients (Nom,Prenom,Date_de_naissance,Adresse,Ville,Cp,Pays,Civil,Email,)VALUES('$Nom','$Prenom','$Date_de_naissance','$Adresse','$Ville','$Cp','$Pays','$Civil','$Email')");   
      	}
      
      ?>
      <form method="POST" action="nouveauxclient.php">
      <p>Nom</p>
      <input type="text" name="Nom"/>
      <p>Prenom</p>
      <input type="text" name="Prenom"/>
      <p>Date de naissance</p>
      <input type="text" name="Date_de_naissance"/>
      <p>Adresse</p>
      <input type="text" name="Adresse"/>
      <p>Ville</p>
      <input type="text" name="Ville"/>
      <p>Code Postal</p>
      <input type="text" name="Cp"/>
      <p>Pays</p>
      <input type="text" name="Pays"/>
      <p>Civil</p>
      <input type="text" name="Civil"/>
      <p>Email</p>
      <input type="text" name="Email"/><br/><br>
      <input type="submit" name="Validez" value="Valider"/>
      </form>
      0
    5. flokocha Messages postés 1519 Statut Membre 281
       
      Tu n'as toujours pas compris l'utilité du recours à isset()... Ce n'est pas $Nom qu'il faut contrôler, mais $_POST['Nom'], comme je te l'ai montré dans mon exemple. Il faut vérifier si oui ou non $_POST['Nom'] existe avant de l'utiliser dans ton code.

      Par conséquent ton if doit également être effectué avant d'assigner $_POST['Nom'] à $Nom.

      Et si tes données ne sont pas insérées, c'est parce qu'il y a toujours une virgule en trop dans ton INSERT après "Email".
      0
  17. sarnide
     
    Voici le code
    <?php
    if(isset($Nom) && isset($Prenom) && isset($Date_de_naissance) && isset($Adresse) && isset($Ville) && isset($Cp) && isset($Pays) && isset($Civil) && isset($Email) && $Nom != "" && $Prenom != "" && $Date_de_naissance != "" && $Adresse != "" && $Ville != "" && $Cp != "" && $Pays != "" && $Civil != "" && $Email != ""){
        $Nom = $_POST['Nom']; 
        $Prenom =$_POST['Prenom']; 
    	$Date_de_naissance = $_POST['Date_de_naissance']; 
    	$Adresse =$_POST['Adresse']; 
    	$Ville = $_POST['Ville']; 
    	$Cp= $_POST['Cp']; 
    	$Pays = $_POST['Pays']; 
        $Civil = $_POST['Civil']; 
    	$Email = $_POST['Email']; 
     $connect= mysql_connect('localhost','test','Sua6XMwEnecGrvYJ'); 
        mysql_select_db("phplogin");  
        mysql_query("INSERT INTO clients (Nom,Prenom,Date_de_naissance,Adresse,Ville,Cp,Pays,Civil,Email)VALUES('$Nom','$Prenom','$Date_de_naissance','$Adresse','$Ville','$Cp','$Pays','$Civil','$Email')");   
    	}
    
    ?>
    <form method="POST" action="nouveauxclient.php">
    <p>Nom</p>
    <input type="text" name="Nom"/>
    <p>Prenom</p>
    <input type="text" name="Prenom"/>
    <p>Date de naissance</p>
    <input type="text" name="Date_de_naissance"/>
    <p>Adresse</p>
    <input type="text" name="Adresse"/>
    <p>Ville</p>
    <input type="text" name="Ville"/>
    <p>Code Postal</p>
    <input type="text" name="Cp"/>
    <p>Pays</p>
    <input type="text" name="Pays"/>
    <p>Civil</p>
    <input type="text" name="Civil"/>
    <p>Email</p>
    <input type="text" name="Email"/><br/><br>
    <input type="submit" name="Validez" value="Valider"/>
    </form>
    Est-il bon ?
    0
    1. flokocha Messages postés 1519 Statut Membre 281
       
      Non ce n'est pas bon !

      La vérification doit s'effectuer sur $_POST['Nom'] et non sur $Nom !

      Observe mieux ce que je viens de t'expliquer et essaie de comprendre !
      0
    2. sarnide
       
      donc ça fait
      $_POST['Nom'] $Nom = ;
      ?
      0
    3. flokocha Messages postés 1519 Statut Membre 281
       
      Ça fait très précisément ce que j'ai écrit, à savoir :
      if (isset($_POST['Nom']) && isset($_POST['Prenom']) && $_POST['Nom'] != "" &&  $_POST['Prenom'] != "") {  
      0
  18. sarnide
     
    Normalement ce code est bon ?

    <?php 
    if(isset($_POST['$Nom']) && isset($_POST['$Prenom']) && isset($_POST['$Date_de_naissance']) && isset($_POST['$Adresse']) && isset($_POST['$Ville']) && isset($_POST['$Cp']) && isset($_POST['$Pays']) && isset($_POST['$Civil']) && isset($_POST['$Email']) && $_POST['Nom'] != "" && $_POST['Prenom'] != "" && $_POST['Date_de_naissance'] != "" && $_POST['Adresse'] != "" && $_POST['Ville'] != "" && $_POST['Cp'] != "" && $_POST['Pays'] != "" && $_POST['Civil'] != "" && $_POST['Email'] != ""){ 
        $Nom = $_POST['Nom'];  
        $Prenom =$_POST['Prenom'];  
     $Date_de_naissance = $_POST['Date_de_naissance'];  
     $Adresse =$_POST['Adresse'];  
     $Ville = $_POST['Ville'];  
     $Cp= $_POST['Cp'];  
     $Pays = $_POST['Pays'];  
        $Civil = $_POST['Civil'];  
     $Email = $_POST['Email'];  
     $connect= mysql_connect('localhost','client','31p71h49');  
        mysql_select_db("phplogin");   
        mysql_query("INSERT INTO clients (Nom,Prenom,Date_de_naissance,Adresse,Ville,Cp,Pays,Civil,Email)VALUES('$Nom','$Prenom','$Date_de_naissance','$Adresse','$Ville','$Cp','$Pays','$Civil','$Email')");    
     } 
    ?> 
    <form method="POST" action="nouveauxclient.php"> 
    <label>Nom</label> 
    <input type="text" name="Nom"/> 
    <p>Prenom</p> 
    <input type="text" name="Prenom"/> 
    <p>Date de naissance</p> 
    <input type="text" name="Date_de_naissance"/> 
    <p>Adresse</p> 
    <input type="text" name="Adresse"/> 
    <p>Ville</p> 
    <input type="text" name="Ville"/> 
    <p>Code Postal</p> 
    <input type="text" name="Cp"/> 
    <p>Pays</p> 
    <input type="text" name="Pays"/> 
    <p>Civil</p> 
    <input type="text" name="Civil"/> 
    <p>Email</p> 
    <input type="text" name="Email"/><br/><br> 
    <input type="submit" name="Validez" value="Valider"/> 
    </form>
    0
    1. tidjool
       
      on y est presque! vérifie la structure de ta table clients, surtout sur le champ date de naissance. Tu as un screen de ta table stp?
      0
    2. sarnide
       
      Oui le voici http://img15.hostingpics.net/pics/897544screen1.png
      0
    3. tidjool
       
      Ok merci. Alors, rempli ton formulaire avec une date genre 1982-03-31 , dak? et dis moi si c'est rentré dans la BD
      0
    4. sarnide
       
      Ce n'est pas rentré dans la base
      0
    5. tidjool
       
      c'est presque bon mais dans ta base, renomme le champ Prénom par Prenom et les champs telephone, mets les à null = oui (toujours dans ta base
      0