IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Condition champ non rempli [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Par défaut Condition champ non rempli
    bonjour
    je coince sur une coince a priori simple
    j'ai mon formulaired'inscription avec champs null et notnull sur la bdd (tous ne sont pas obligatoires)
    j'ai fait plusieurs tentatives, (je vous fais grâce de tous les codes tentés)
    j'ai soit syntaxe error (m'enfin, c'est presque "normal"), ou alors le message apparait avant le remplissage des champs, ou alors mysql m'ouvre une page blanche en anglais "column must be filled"
    je cherche deux options :
    -soit je fais une requete pour que mysql ouvre ma page " inscription erronée" avec le texte qui va bien
    -soit je mets les conditions bien comme ilfaut pour avoir les echo au bon endroit pour les champs non remplis; je suis perdu
    je n'arrive à rien faire de tout ça et ça commence à me....légèrement
    voilà une partie de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    <?php require_once('../Connections/mb.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
     
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
     
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
    }
     
    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset($_SERVER['QUERY_STRING'])) {
      $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    }
     
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "membre")) {
      $insertSQL = sprintf("INSERT INTO membre (prenom1, prenom2, nom1, nom2, email, pseudo, password, sexe, jour, mois, annee, rue, numrue, ville, cp, province, pays, telephone) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                           GetSQLValueString($_POST['prenom1mem'], "text"),
                           GetSQLValueString($_POST['prenom2mem'], "text"),
                           GetSQLValueString($_POST['nom1mem'], "text"),
                           GetSQLValueString($_POST['nom2mem'], "text"),
                           GetSQLValueString($_POST['mailmembre'], "text"),
                           GetSQLValueString($_POST['pseudo'], "text"),
                           GetSQLValueString($_POST['mot_de_passe'], "text"),
                           GetSQLValueString($_POST['sexe'], "text"),
                           GetSQLValueString($_POST['jourmem'], "int"),
                           GetSQLValueString($_POST['moismem'], "text"),
                           GetSQLValueString($_POST['anneemem'], "int"),
                           GetSQLValueString($_POST['rue'], "text"),
                           GetSQLValueString($_POST['numrue'], "int"),
                           GetSQLValueString($_POST['ville'], "text"),
                           GetSQLValueString($_POST['cp'], "int"),
                           GetSQLValueString($_POST['province'], "text"),
                           GetSQLValueString($_POST['pays'], "text"),
                           GetSQLValueString($_POST['telephone'], "int"));
     
      mysql_select_db($database_mb, $mb);
      $Result1 = mysql_query($insertSQL, $mb) or die(mysql_error());
     
    <form action="<?php echo $editFormAction; ?>" id="membre" name="membre" method="POST">
     
    <input name="prenom1mem" type="text" id="prenom1mem"  />
                    <label for="prenom1mem"></label>
                    <span class="Style80">2°prénom </span>
                    <input name="prenom2mem" type="text" id="prenom2mem" />
                    <label for="prenom2mem"></label>
    merci d'avance, en espérant avoir suffisamment précis

  2. #2
    Membre expérimenté Avatar de frol
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 288
    Par défaut
    bon ici je pense que la première chose est que ce n'est pas clair dans ta tête

    bon tout d'abord ou est le problème
    as tu déjà réussi a faire une requête sql qui fonctionnait?
    quelle difficulté as-tu pour vérifier les champs?

    fais un code bien clair avec tout bien séparé et chose carrément folle mets des commentaires ^^

    le code est-il de ton cru ou l'as tu pris quelque part?

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je n'ai pas tout compris a ce que tu voulais mais cependant je ne vois pas a quel endroit tu definis si ton champ peut prendre la valeur Null ou s'il est obligatoire.

    On a pas le fin du "if" ni la fin du php. C'est une coupure de ton copier/coller ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Par défaut champ non rempli
    bonsoir
    ce que je voudrais quand un utilisateur s'inscrit dès la première fois c'est qu'un message s'inscrive sur la page quand il oublie de remplir un champ obligatoire
    grâce à une condition + echo
    si je ne remplis pas un champ obligatoire cela me donne une page blanche avec une ligne en anglais " ..must be filled" ou "cannot be null" et c'est pas terrible;
    pour moi l'idéal serait d'avoir un echo pour chaque champ non rempli; j'ai créé une page " inscription erronée avec une phrase " les champs* ne sont pas remplis" en espérant faire un echo href vers cette page mais je n'y parviens pas non plus 'tout ça pour dire aue j'ai plein de choses différentes qui n'ont pas fonctionné comme j'aurais voulu)
    j'espère être clair
    je suis débutant (ça se voit ?) et je ne m'exprime peut-être pas très bien.
    je travaille avec dreamweaver dont je ne maitrise pas encore toutes les subtilités.
    voila la fin du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
                          GetSQLValueString($_POST['nom2mem'], "text"),
                           GetSQLValueString($_POST['mailmembre'], "text"),
                           GetSQLValueString($_POST['username'], "text"),
                           GetSQLValueString($_POST['sexe'], "text"),
                           GetSQLValueString($_POST['password'], "text"),
                           GetSQLValueString($_POST['jourmem'], "int"),
                           GetSQLValueString($_POST['moismem'], "text"),
                           GetSQLValueString($_POST['anneemem'], "int"),
                           GetSQLValueString($_POST['rue'], "text"),
                           GetSQLValueString($_POST['numrue'], "int"),
                           GetSQLValueString($_POST['ville'], "text"),
                           GetSQLValueString($_POST['cp'], "int"),
                           GetSQLValueString($_POST['province'], "text"),
                           GetSQLValueString($_POST['pays'], "text"),
                           GetSQLValueString($_POST['telephone'], "int"));
     
      mysql_select_db($database_mb, $mb);
      $Result1 = mysql_query($insertSQL, $mb) or die(mysql_error());
     
      $insertGoTo = "paiement-abonnement.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $insertGoTo));
    }
     
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "membre")) {
      $insertSQL = sprintf("INSERT INTO site_session (sid) VALUES (%s)",
                           GetSQLValueString($_POST['username'], "text"));
     
      mysql_select_db($database_mb, $mb);
      $Result1 = mysql_query($insertSQL, $mb) or die(mysql_error());
     
      $insertGoTo = "paiement-abonnement.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $insertGoTo));
    }
     
     
    mysql_connect("localhost", "root", "");
    ?>
    merci d'avance

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Par défaut champ non rempli
    "bon tout d'abord ou est le problème
    as tu déjà réussi a faire une requête sql qui fonctionnait?
    quelle difficulté as-tu pour vérifier les champs"

    j'ai bien avancé dans la relation formulaires/bdd, j'ai deja fait des 10aines de test qui ont bien fonctionné avec différentes tables avec sessions, pages protégées, acces restreint ( grace à dreamweaver); d'ailleurs j'ai utilisé un tuto d'ici pour les sessions (user_tbl, session_tbl). il ya encore 2 , 3 ptites choses qui m'échappent mais je les garde pour le dessert

  6. #6
    Membre expérimenté Avatar de frol
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 288
    Par défaut
    c'est pas exactement ce que je veux dire

    en fait ici tu as un script quand même assez compliqué au niveau php
    cependant ton erreur est une erreur sql (mayrde)

    donc ce que tu peux faire c'est partir d'un truc simple
    essaie de faire une requête sql simple

    c'est à dire une statique tu vas ajouter un membre manuellement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $insertSQL = "INSERT INTO membre (prenom1, prenom2, nom1, nom2, email, pseudo, password, sexe, jour, mois, annee, rue, numrue, ville, cp, province, pays, telephone) VALUES ('jean','étienne','isidore','...',...)"
    Une fois ceci fait il te sera facile de mettre les données dans ta requête
    perso j'aime pas sprintf donc je te montre plutôt comment je ferais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $insertSQL = "INSERT INTO membre (prenom1, prenom2, nom1, nom2, email, pseudo, password, sexe, jour, mois, annee, rue, numrue, ville, cp, province, pays, telephone) VALUES";
    $insertSQL .= GetSQLValueString($_POST['prenom1mem'], "text").",";
    $insertSQL .= GetSQLValueString($_POST['prenom2mem'], "text").",";
    ...
    $insertSQL .= ")";
    ensuite tu fais un echo $$insertSQL comme ça tu peux vérifier a tout moment que le code te donne bien ce qui se rapproche de la requête que tu as réussi a faire passer


    une fois que tu auras fait ça et que tu auras réussi a ajouter des membres dans ta table et ben on verra comment vérifier les champs avant de donner la requête à mysql pour ne pas se faire cracher dessus

    par contre je suis vraiment pas fan de ces codes fais par dreamweaver
    je vais vite refaire ton code pour te montrer ce que serait un code propre
    si tu veux apprendre le php passe pas par des truc comme ça ça salis trop ton code

  7. #7
    Membre expérimenté Avatar de frol
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 288
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php
    require_once('../Connections/mb.php');
     
    //si le formulaire n'est pas vide on va essayer d'ajouter le membre
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "membre")) {
     
        //on met la première partie de la requête, celle qui ne change jamais
        $insertSQL = "INSERT INTO membre (prenom1, prenom2, nom1, nom2, email, pseudo, password, sexe, jour, mois, annee, rue, numrue, ville, cp, province, pays, telephone) VALUES ";
     
        //ici on ajoute simplement des mysql_real_escape_string en fait ta fonction ne faisait que voir si la fonction était définie sur ton serveur sinon elle mettait mysql_escape_string cela dit ça ne sert strictement a rien il suffit toi de faire cette vérif (si t'as une erreur mysql_real_escape_string not defined ben tu mets l'autre)
     
        $insertSQL .= mysql_real_escape_string($_POST['prenom1mem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['prenom2mem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['nom1mem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['nom2mem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['mailmembre']).',';
        $insertSQL .= mysql_real_escape_string($_POST['pseudo']).',';
        $insertSQL .= mysql_real_escape_string($_POST['mot_de_passe']).',';
        $insertSQL .= mysql_real_escape_string($_POST['sexe']).',';
        $insertSQL .= mysql_real_escape_string($_POST['jourmem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['moismem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['anneemem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['rue']).',';
        $insertSQL .= mysql_real_escape_string($_POST['numrue']).',';
        $insertSQL .= mysql_real_escape_string($_POST['ville']).',';
        $insertSQL .= mysql_real_escape_string($_POST['cp']).',';
        $insertSQL .= mysql_real_escape_string($_POST['province']).',';
        $insertSQL .= mysql_real_escape_string($_POST['pays']).',';
        $insertSQL .= mysql_real_escape_string($_POST['telephone']));
        $insertSQL .= ")";
     
      mysql_select_db($database_mb, $mb);
      $Result1 = mysql_query($insertSQL, $mb) or die(mysql_error());
    ?>
    <form action="<?php echo $editFormAction; ?>" id="membre" name="membre" method="POST">
     
    <input name="prenom1mem" type="text" id="prenom1mem"  />
                    <label for="prenom1mem"></label>
                    <span class="Style80">2°prénom </span>
                    <input name="prenom2mem" type="text" id="prenom2mem" />
                    <label for="prenom2mem"></label>

    voilà le code
    tu pourras plus facilement faire des modifications et le comprendre comme ceci

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Par défaut champ vide
    bonjour,
    et merci de ta réponse.
    je n'arrive pas à faire fonctionner ton code, sans doute parce que je sais pas comment utiliser ça
    "ensuite tu fais un echo $$insertSQL comme ça tu peux vérifier a tout moment que le code te donne bien ce qui se rapproche de la requête que tu as réussi a faire passer"
    je n'ai pas compris où je dois placer echo $$insertSQL et comment faire apparaitre le message désiré en cas de champ non rempli
    en mettant des noms dans la ligne de code VALUES (prenom, ...) mysql me répond que le nom que j'ai mis est inconnu

    merci d'avance

  9. #9
    Membre expérimenté Avatar de frol
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 288
    Par défaut
    en fait pour le moment je ne m'occupe pas des champs non remplis

    et en fait je me suis trompé c'est bien sur $insertSQL et non $$insertSQL

    alors voila ce que je veux te faire faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
    require_once('../Connections/mb.php');
     
    //si le formulaire n'est pas vide on va essayer d'ajouter le membre
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "membre")) {
     
        //on met la première partie de la requête, celle qui ne change jamais
        $insertSQL = "INSERT INTO membre (prenom1, prenom2, nom1, nom2, email, pseudo, password, sexe, jour, mois, annee, rue, numrue, ville, cp, province, pays, telephone) VALUES ";
     
        //ici on ajoute simplement des mysql_real_escape_string en fait ta fonction ne faisait que voir si la fonction était définie sur ton serveur sinon elle mettait mysql_escape_string cela dit ça ne sert strictement a rien il suffit toi de faire cette vérif (si t'as une erreur mysql_real_escape_string not defined ben tu mets l'autre)
     
        $insertSQL .= 'prenom1mem,';
        $insertSQL .= 'prenom2mem,';
        $insertSQL .= 'nom1mem,';
        $insertSQL .= 'nom2mem,';
        $insertSQL .= 'mailmembre,';
        $insertSQL .= 'pseudo,';
        $insertSQL .= 'mot_de_passe,';
        $insertSQL .= 'sexe,';
        $insertSQL .= 'jourmem,';
        $insertSQL .= 'moismem,';
        $insertSQL .= 'anneemem,';
        $insertSQL .= 'rue,';
        $insertSQL .= 'numrue,';
        $insertSQL .= 'ville,';
        $insertSQL .= 'cp,';
        $insertSQL .= 'province,';
        $insertSQL .= 'pays,';
        $insertSQL .= 'telephone';
        $insertSQL .= ")";
     
      mysql_select_db($database_mb, $mb);
      $Result1 = mysql_query($insertSQL, $mb) or die(mysql_error());
    ?>
    pour voir si ta requete est correcte
    il faudra certainement modifier quelques trucs c'est sur ce qu'on va se baser en premier

    essaye de faire ça si t'as un problème dis le on regardera ça

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Par défaut champ non rempli
    ça me donne
    Parse error: syntax error, unexpected $end on line 375 (la derniere )
    j'ai changé le ; après VALUES" par , et j'ai
    Parse error: syntax error, unexpected ',' on line 8
    8 $insertSQL = "INSERT INTO site_user (prenom1, prenom2, nom1, nom2, email, pseudo, password,
    9 sexe, jour, mois, annee, rue, numrue, ville, cp, province, pays, telephone) VALUES ",

    je reviens au code antérieur ?

  11. #11
    Membre expérimenté Avatar de frol
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 288
    Par défaut
    ton changement produit une erreur ne le garde pas

    tu sais me mettre la ligne 375 je l'ai pas moi^^

  12. #12
    Invité
    Invité(e)
    Par défaut
    Salut,

    Il te manque la parenthèse ouvrante après le VALUES.


    $insertSQL = "INSERT INTO membre (prenom1, prenom2, nom1, nom2, email, pseudo, password, sexe, jour, mois, annee, rue, numrue, ville, cp, province, pays, telephone) VALUES (";

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Par défaut champ non rempli
    la ligne 375 c'est la dernière de la page celle de <body html>
    j'ai donc fait un mixe du code proposé par frol et celui de dreamweaver pour supprimer la sybtax error :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    <?php
    require_once('../Connections/mb.php');
     
    //si le formulaire n'est pas vide on va essayer d'ajouter le membre
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "membre")) {
     
        //on met la première partie de la requête, celle qui ne change jamais
        $insertSQL = "INSERT INTO site_user (prenom1, prenom2, nom1, nom2, email, pseudo, password, sexe, jour, mois, annee, rue, numrue, ville, cp, province, pays, telephone) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
     
        //ici on ajoute simplement des mysql_real_escape_string en fait ta fonction ne faisait que voir si la fonction était définie sur ton serveur sinon elle mettait mysql_escape_string cela dit ça ne sert strictement a rien il suffit toi de faire cette vérif (si t'as une erreur mysql_real_escape_string not defined ben tu mets l'autre)
     
        $insertSQL .= 'prenom1mem,';
        $insertSQL .= 'prenom2mem,';
        $insertSQL .= 'nom1mem,';
        $insertSQL .= 'nom2mem,';
        $insertSQL .= 'mailmembre,';
        $insertSQL .= 'pseudo,';
        $insertSQL .= 'mot_de_passe,';
        $insertSQL .= 'sexe,';
        $insertSQL .= 'jourmem,';
        $insertSQL .= 'moismem,';
        $insertSQL .= 'anneemem,';
        $insertSQL .= 'rue,';
        $insertSQL .= 'numrue,';
        $insertSQL .= 'ville,';
        $insertSQL .= 'cp,';
        $insertSQL .= 'province,';
        $insertSQL .= 'pays,';
        $insertSQL .= 'telephone';
        $insertSQL .= ")";
     
    mysql_connect("localhost", "root", "");
    et l'enregistrement se fait dans ma bdd

  14. #14
    Membre expérimenté Avatar de frol
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 288
    Par défaut
    bon ben ça déjà c'est super
    mais nous ne somme qu'au début

    il faut maintenant remettre un truc dynamique donc
    changer les
    $insertSQL .= 'prenom1mem,';
    par
    $insertSQL .= mysql_real_escape_string($_POST['prenom1mem']).',';

    quand tu auras fait ça et que ça marchera on verra pour vérifier les valeurs

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Par défaut champ non rempli
    apparemment il n'en veut pas


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $insertSQL .= mysql_real_escape_string($_POST['prenom1mem']).',';
    ça me donne ça
    Parse error: syntax error, unexpected ';' in .. on line 39
    cad dès la première ligne

  16. #16
    Membre expérimenté Avatar de frol
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 288
    Par défaut
    ok tu as vraiment fait un sale mix en fait ^^

    ça m'étonne même qu'au dessus ça ait marcher

    remplace
    $insertSQL = "INSERT INTO site_user (prenom1, prenom2, nom1, nom2, email, pseudo, password, sexe, jour, mois, annee, rue, numrue, ville, cp, province, pays, telephone) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",

    par
    $insertSQL = "INSERT INTO site_user (prenom1, prenom2, nom1, nom2, email, pseudo, password, sexe, jour, mois, annee, rue, numrue, ville, cp, province, pays, telephone) VALUES (";

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Par défaut champ non rempli
    bonjour,
    en fait mon erreur était due à un changement de nom de variable
    j'ai refait, j'ai enfin réussi à ouvrir la page à inscrire un enregistrement, envoyer et arriver à la page suivante.... malheureusement les données ne sont pas arrivée à la bdd
    j'ai voulu faire un changement et maintenant j'ai ça
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near (...,...)at line 1
    quand je valide l'enregistrement

    voila donc mon code en cours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php require_once('../Connections/mb.php'); ?>
    <?php
      if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "membre")) {
      $insertSQL = "INSERT INTO site_user (prenom1, prenom2, nom1, nom2, email, password, username, sexe, annee, rue, numrue, ville, cp, province, pays, telephone) VALUES (";
        $insertSQL .= mysql_real_escape_string($_POST['prenom1mem']).'.';
        $insertSQL .= mysql_real_escape_string($_POST['prenom2mem']).'.';
        $insertSQL .= mysql_real_escape_string($_POST['nom1mem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['nom2mem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['mailmembre']).',';
        $insertSQL .= mysql_real_escape_string($_POST['username']).',';
        $insertSQL .= mysql_real_escape_string($_POST['password']).',';
        $insertSQL .= mysql_real_escape_string($_POST['sexe']).',';
        $insertSQL .= mysql_real_escape_string($_POST['jourmem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['moismem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['anneemem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['rue']).',';
        $insertSQL .= mysql_real_escape_string($_POST['numrue']).',';
        $insertSQL .= mysql_real_escape_string($_POST['ville']).',';
        $insertSQL .= mysql_real_escape_string($_POST['cp']).',';
        $insertSQL .= mysql_real_escape_string($_POST['province']).',';
        $insertSQL .= mysql_real_escape_string($_POST['pays']).',';
        $insertSQL .= mysql_real_escape_string($_POST['telephone']).',';
        $insertSQL .= ")";
     
      mysql_select_db($database_mb, $mb);
      $Result1 = mysql_query($insertSQL, $mb) or die(mysql_error());
     
      $insertGoTo = "paiement-abonnement.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $insertGoTo));
    }
     
    mysql_connect("localhost", "root", "");
    ?>
    j'ai fait essai en supprimant la ligne 1 ....je raconte même pas

  18. #18
    Invité
    Invité(e)
    Par défaut
    $insertSQL .= mysql_real_escape_string($_POST['prenom1mem']).'.';
    $insertSQL .= mysql_real_escape_string($_POST['prenom2mem']).'.';

    C'est , et PAS.

    $insertSQL .= mysql_real_escape_string($_POST['telephone']).',';
    telephone est la dernière ligne de ton insert -> pas de virgule!

    Il faut donc l'écrire de cette manière.
    $insertSQL .= mysql_real_escape_string($_POST['telephone']);

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Par défaut ça continue...
    salut,
    j'ai corrigé, mais ça n'apas changé le message d'erreur
    j'ai tout refait au propre, , tout remis, y compris les balises, pour vérifier les noms des variables, et malgré, ça continue. je vais re re re vérifier, mais je crois que je ne vais pas tarder à tuer le chien.......
    re voila donc le code question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <?php require_once('../Connections/mb.php'); ?>
    <?php
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "membre")) {
      $insertSQL = "INSERT INTO site_user (prenom1, prenom2, nom1, nom2, email, password, username, sexe, jour, mois, rue, numrue, ville, cp, province, pays, telephone) VALUES (";
        $insertSQL .= mysql_real_escape_string($_POST['prenom1mem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['prenom2mem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['nom1mem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['nom2mem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['mailmembre']).',';
        $insertSQL .= mysql_real_escape_string($_POST['username']).',';
        $insertSQL .= mysql_real_escape_string($_POST['password']).',';
        $insertSQL .= mysql_real_escape_string($_POST['sexe']).',';
        $insertSQL .= mysql_real_escape_string($_POST['jourmem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['moismem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['anneemem']).',';
        $insertSQL .= mysql_real_escape_string($_POST['rue']).',';
        $insertSQL .= mysql_real_escape_string($_POST['numrue']).',';
        $insertSQL .= mysql_real_escape_string($_POST['ville']).',';
        $insertSQL .= mysql_real_escape_string($_POST['cp']).',';
        $insertSQL .= mysql_real_escape_string($_POST['province']).',';
        $insertSQL .= mysql_real_escape_string($_POST['pays']).',';
        $insertSQL .= mysql_real_escape_string($_POST['telephone']);
        $insertSQL .= ")";
     
     
      mysql_select_db($database_mb, $mb);
      $Result1 = mysql_query($insertSQL, $mb) or die(mysql_error());
     
      $insertGoTo = "paiement-abonnement.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $insertGoTo));
    }
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    action="<?php echo $editFormAction; ?>" id="membre" name="membre" method="POST"> 
     
          <div align="left" class="Style53"><span class="Style80">prénom 1 </span><span class="Style84">*</span>        
            <input type="text" name="prenom1mem" id="prenom1mem" />  
            <span class="Style80">
    <label for="prenom1mem"></label>
    prénom 2</span>
            <input type="text" name="prenom2mem" id="prenom2mem" /> 
            <label for="prenom2mem"></label>

  20. #20
    Invité
    Invité(e)
    Par défaut
    Re,

    Il y a encore des erreurs -> nom prénom sont des chaines de caractères il faut donc l'encadrer de ' ' au niveau de la requête sql

    est-ce que tu pourrais nous fournir les types de tous les champs de ta table site_user ainsi je te réécris correctement ta chaine.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Arrêter code si condition If non remplie
    Par maxime350 dans le forum IHM
    Réponses: 5
    Dernier message: 21/01/2010, 21h22
  2. [WD-2003] Affichage de crochets pour les champs non rempli lors de l'impression
    Par formabox dans le forum VBA Word
    Réponses: 1
    Dernier message: 24/04/2009, 09h57
  3. gestion des champs non remplis.
    Par Niki59 dans le forum Langage
    Réponses: 2
    Dernier message: 12/11/2008, 22h12
  4. Mettre en rouge un champ non rempli
    Par maysa dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/06/2007, 12h55
  5. Pb IE/Firefox : champs non remplis/ champs remplis
    Par bibiloute dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/05/2006, 14h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo