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 :

Récupération de données de formulaire


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 164
    Par défaut Récupération de données de formulaire
    Bonjour,

    J'ai un formulaire php que je viens de terminer. maintenant j'aimerai que les données du formulaire soient stockés dans la base de données mais le problème c'est que j'ai un erreur que je n'arrive pas à résoudre.

    formulaire php:

    http://www.hostingpics.net/viewer.ph...formulaire.jpg

    voici le 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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    <!DOCTYPE html>
     <html>
      <head>
       <meta name="projet" content="projet">
       <link rel="stylesheet" href="style_projet.css">
       <title>
         Société Autolib'
       </title>
      </head>
      <body>
      <p>
      <form method="post" action="dbb.php">
     
      <label> Nom</label><br> : <input type="text" name="nom" /> <br>
      <label> Prénom</label><br> : <input type="text" name="prenom" /> <br>
      <label> Date de naissance</label><br> : <input type="text" name="date_de_naissance" /> <br>
      <label> Adresse mail</label><br> : <input type="text" name="adresse_mail" />	<br>
      <label> Mot de passe</label><br> : <input type="password" name="mot_de_passe" />	<br>
      <label> Numéro de téléphone</label><br> : <input type="text" name="numero_de_telephone" />	<br>
      <label> Numéro de carte bancaire</label><br> : <input type="text" name="numero_de_carte_bancaire" />	<br>
      <label> Nom du titulaire</label><br> : <input type="text" name="nom_du_titulaire" />	<br>
      <label> Type de carte</label><br> : <input type="text" name="type_de_carte" />	<br>
      <label> Expiration</label><br> : <input type="text" name="expiration" />	<br>
      <label> Cryptogramme</label><br> : <input type="text" name="cryptogramme" />	<br>
      <label> Pays</label><br>
    	<select name="pays" id="pays">
    		<optgroup label="Europe">
    			<option value="allemagne">Allemagne</option>
    			<option value="autriche">Autriche</option>
    			<option value="espagne">Espagne</option>
    			<option value="france">France</option>
    			<option value="grece">Grêce</option>
    			<option value="irlande">Irlande</option>
    			<option value="italie">Italie</option>
    			<option value="portugale">Portugale</option>
    			<option value="royaume-uni">Royaume-uni</option>
    		</optgroup>
    		<optgroup label="Amérique">
    			<option value="argentine">Argentine</option>
    			<option value="bresil">Brésil</option>
    			<option value="canada">Canada</option>
    			<option value="etats-unis">Etats-unis</option>
    			<option value="jamaique">Jamaïque</option>
    			<option value="mexique">Mexique</option>
    			<option value="venezuela">Venezuela</option>
    		</optgroup>
    		<optgroup label="Asie">
    			<option value="birmanie">Birmanie</option>
    			<option value="chine">Chine</option>
    			<option value="inde">Inde</option>
    			<option value="japon">Japon</option>
    			<option value="philippines">Philippines</option>
    			<option value="thailande">Thaïlande</option>
    		</optgroup>
    		<optgroup label="Autre">
    			<option value="afrique_du_sud">Afrique du Sud</option>
    			<option value="algerie">algérie</option>
    			<option value="australie">Australie</option>
    			<option value="maroc">Maroc</option>
    			<option value="nouvelle_zelande">Nouvelle-zelande</option>
    			<option value="russie">Russie</option>
    			<option value="tunisie">Tunisie</option>
    		</optgroup>
    	</select>
     
     
     
    <input type="submit" value="Valider" />
       </form>	
      </p>
     
    <?php
    if (empty($_POST['nom']))      // si le nombre est vide on affiche rien
    {
    }
    else                           // si on a recu les valeurs alors on les ajoute dans la base de donnees
    {
    try
    {    
    $bdd = new PDO('mysql:host=localhost;dbname=autolib', 'root', '');      // connexion a la base de donnees
    }
    catch(Exception $e)
    {    
        die('Erreur : '.$e->getMessage());                                   
    }
     
    $nom=$_POST['nom'];
    $prenom=$_POST['prenom'];
    $date_de_naissance=$_POST['date_de_naissance'];
    $adresse_mail=$_POST['adresse_mail'];
    $mot_de_passe=$_POST['mot_de_passe'];
    $numero_de_telephone=$_POST['numero_de_telephone'];
    $numero_de_carte_bancaire=$_POST['numero_de_carte_bancaire'];
    $nom_du_titulaire=$_POST['nom_du_titulaire'];
    $type_de_carte=$_POST['type_de_carte'];
    $expiration=$_POST['expiration'];
    $cryptogramme=$_POST['cryptogramme'];
    $pays=$_POST['pays'];
     
    $req = $bdd->prepare('INSERT INTO base_de_donnees(nom, prenom, date_de_naissance, adresse_mail, mot_de_passe, numero_de_telephone, nom_du_titulaire,type_de_carte,expiration,cryptogramme,pays)
    VALUES(:nom,:prenom,:date_de_naissance,:adresse_mail,:mot_de_passe,:numero_de_telephone,:nom_du_titulaire,:type_de_carte,:expiration,:cryptogramme,:pays)');
    $req->execute(array(
     
    'nom' => $nom,  
    'prenom' => $prenom, 
    'date_de_naissance' => $date_de_naissance,
    'mot_de_passe' => $mot_de_passe,
    'numero_de_telephone' => $numero_de_telephone,
    'numero_de_carte_bancaire' => $numero_de_carte_bancaire,
    'nom_du_titulaire' => $nom_du_titulaire,
    'type_de_carte' => $type_de_carte,
    'expiration' => $expiration,
    'cryptogramme' => $cryptogramme,
    'pays' => $pays,
    ));
    echo 'votre compte a bien été enregistré';
    }
    ?>
     
     
     </body>  
     </head>
    il m'affiche l'erreur suivante:
    Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in I:\EasyPHP-12.1\www\dbb.php on line 115
    votre compte a bien été enregistré
    voici ma base de données mais je doute que se soit cela le problème:

    http://www.hostingpics.net/viewer.php?id=585788bdd.jpg

  2. #2
    Membre chevronné Avatar de humitake
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 399
    Par défaut
    Bonjour,

    L'erreur te dis que tu as un nombre de paramètres insuffisant
    En effet dans ton insert tu déclare vouloir insérer l'email mais tu ne le fait pas dans value. Donc tu a un paramètre d'insertion de plus que de valeur.
    D'où le message d'erreur explicite

  3. #3
    Membre très actif
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 164
    Par défaut
    voila c corrigé.

    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
    <?php
    if (empty($_POST['nom']))      // si le nombre est vide on affiche rien
    {
    }
    else                           // si on a recu les valeurs alors on les ajoute dans la base de donnees
    {
    try
    {    
    $bdd = new PDO('mysql:host=localhost;dbname=autolib', 'root', '');      // connexion a la base de donnees
    }
    catch(Exception $e)
    {    
        die('Erreur : '.$e->getMessage());                                   
    }
     
    $nom=$_POST['nom'];
    $prenom=$_POST['prenom'];
    $date_de_naissance=$_POST['date_de_naissance'];
    $adresse_mail=$_POST['adresse_mail'];
    $mot_de_passe=$_POST['mot_de_passe'];
    $numero_de_telephone=$_POST['numero_de_telephone'];
    $numero_de_carte_bancaire=$_POST['numero_de_carte_bancaire'];
    $nom_du_titulaire=$_POST['nom_du_titulaire'];
    $type_de_carte=$_POST['type_de_carte'];
    $expiration=$_POST['expiration'];
    $cryptogramme=$_POST['cryptogramme'];
    $pays=$_POST['pays'];
     
    $req = $bdd->prepare('INSERT INTO base_de_donnees(nom, prenom, date_de_naissance, adresse_mail, mot_de_passe, numero_de_telephone, nom_du_titulaire,type_de_carte,expiration,cryptogramme,pays)
    VALUES(:nom,:prenom,:date_de_naissance,:adresse_mail,:mot_de_passe,:numero_de_telephone,:nom_du_titulaire,:type_de_carte,:expiration,:cryptogramme,:pays)');
    $req->execute(array(
     
    'nom' => $nom,  
    'prenom' => $prenom, 
    'date_de_naissance' => $date_de_naissance,
    'adresse_mail' => $adresse_mail,
    'mot_de_passe' => $mot_de_passe,
    'numero_de_telephone' => $numero_de_telephone,
    'numero_de_carte_bancaire' => $numero_de_carte_bancaire,
    'nom_du_titulaire' => $nom_du_titulaire,
    'type_de_carte' => $type_de_carte,
    'expiration' => $expiration,
    'cryptogramme' => $cryptogramme,
    'pays' => $pays,
    ));
    echo 'votre compte a bien été enregistré';
    }
    ?>
    mais toujours l'erreur :

    Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in I:\EasyPHP-12.1\www\dbb.php on line 116
    votre compte a bien été enregistré

  4. #4
    Membre éclairé Avatar de Arunna
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2013
    Messages : 34
    Par défaut
    Tu as oublié "numero_de_carte_bancaire" dans ta requête sql.

  5. #5
    Membre très actif
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 164
    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
    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    <!DOCTYPE html>
     <html>
      <head>
       <meta name="projet" content="projet">
       <link rel="stylesheet" href="style_projet.css">
       <title>
         Société Autolib'
       </title>
      </head>
      <body>
      <p>
      <form method="post" action="formulaire_projet_test.php">
     
      <label> Nom</label> : <br><input type="text" name="nom" /> <br>
      <label> Prénom</label> : <br><input type="text" name="prenom" /> <br>
      <label> Date de naissance</label> : <br><input type="text" name="date_de_naissance" /> <br>
      <label> Adresse mail</label> : <br><input type="text" name="adresse_mail" />	<br>
      <label> Mot de passe</label> : <br><input type="password" name="mot_de_passe" />	<br>
      <label> Numéro de téléphone</label> : <br><input type="text" name="numero_de_telephone" />	<br>
      <label> Numéro de carte bancaire</label> : <br><input type="text" name="numero_de_carte_bancaire" />	<br>
      <label> Nom du titulaire</label> : <br><input type="text" name="nom_du_titulaire" />	<br>
      <label> Type de carte</label><br>
    	<select name="type_de_carte" id="type_de_carte">
    		<option value="american_express">American Express</option>
    		<option value="maestro">Maestro</option>
    		<option value="master_card">Master Card</option>
    		<option value="visa">Visa</option>
    	</select><br>
    	Expiration<br>
      <label> Mois</label>
    	<select name="mois" id="mois">
    		<option value="01">01</option>
    		<option value="02">02</option>
    		<option value="03">03</option>
    		<option value="04">04</option>
    		<option value="05">05</option>
    		<option value="06">06</option>
    		<option value="07">07</option>
    		<option value="08">08</option>
    		<option value="09">09</option>
    		<option value="10">10</option>
    		<option value="11">11</option>
    		<option value="12">12</option>
    	</select>
      <label> Années</label>
    	<select name="annees" id="annees">
    		<option value="2013">2013</option>
    		<option value="2014">2014</option>
    		<option value="2015">2015</option>
    		<option value="2016">2016</option>
    		<option value="2017">2017</option>
    		<option value="2018">2018</option>
    		<option value="2019">2019</option>
    		<option value="2020">2020</option>
    		<option value="2021">2021</option>
    		<option value="2022">2022</option>
    		<option value="2023">2023</option>
    	</select><br>
      <label> Cryptogramme</label> : <br><input type="text" name="cryptogramme" />	<br>
      <label> Pays</label><br>
    	<select name="pays" id="pays">
    		<optgroup label="Europe">
    			<option value="allemagne">Allemagne</option>
    			<option value="autriche">Autriche</option>
    			<option value="espagne">Espagne</option>
    			<option value="france">France</option>
    			<option value="grece">Grêce</option>
    			<option value="irlande">Irlande</option>
    			<option value="italie">Italie</option>
    			<option value="portugale">Portugale</option>
    			<option value="royaume-uni">Royaume-uni</option>
    		</optgroup>
    		<optgroup label="Amérique">
    			<option value="argentine">Argentine</option>
    			<option value="bresil">Brésil</option>
    			<option value="canada">Canada</option>
    			<option value="etats-unis">Etats-unis</option>
    			<option value="jamaique">Jamaïque</option>
    			<option value="mexique">Mexique</option>
    			<option value="venezuela">Venezuela</option>
    		</optgroup>
    		<optgroup label="Asie">
    			<option value="birmanie">Birmanie</option>
    			<option value="cambodge">Cambodge</option>
    			<option value="chine">Chine</option>
    			<option value="inde">Inde</option>
    			<option value="japon">Japon</option>
    			<option value="laos">Laos</option>
    			<option value="philippines">Philippines</option>
    			<option value="thailande">Thaïlande</option>
    			<option value="vietnam">Vietnam</option>
    		</optgroup>
    		<optgroup label="Autre">
    			<option value="afrique_du_sud">Afrique du Sud</option>
    			<option value="algerie">algérie</option>
    			<option value="australie">Australie</option>
    			<option value="maroc">Maroc</option>
    			<option value="nouvelle_zelande">Nouvelle-zelande</option>
    			<option value="russie">Russie</option>
    			<option value="tunisie">Tunisie</option>
    		</optgroup>
    	</select><br><br>
     
     
    <input type="submit" value="Valider" />
       </form>	
      </p>
    <?php
    if (empty($_POST['nom']))      // si le nombre est vide on affiche rien
    {
    }
    else                           // si on a recu les valeurs alors on les ajoute dans la base de donnees
    {
    try
    {    
    $bdd = new PDO('mysql:host=localhost;dbname=autolib', 'root', '');      // connexion a la base de donnees
    }
    catch(Exception $e)
    {    
        die('Erreur : '.$e->getMessage());                                   
    }
     
    $nom=$_POST['nom'];
    $prenom=$_POST['prenom'];
    $date_de_naissance=$_POST['date_de_naissance'];
    $adresse_mail=$_POST['adresse_mail'];
    $mot_de_passe=$_POST['mot_de_passe'];
    $numero_de_telephone=$_POST['numero_de_telephone'];
    $numero_de_carte_bancaire=$_POST['numero_de_carte_bancaire'];
    $nom_du_titulaire=$_POST['nom_du_titulaire'];
    $type_de_carte=$_POST['type_de_carte'];
    $expiration=$_POST['expiration'];
    $cryptogramme=$_POST['cryptogramme'];
    $pays=$_POST['pays'];
     
    $req = $bdd->prepare('INSERT INTO base_de_donnees(nom, prenom, date_de_naissance, adresse_mail, mot_de_passe, numero_de_telephone, numero_de_carte_bancaire,nom_du_titulaire,type_de_carte,expiration,cryptogramme,pays)
    VALUES(:nom,:prenom,:date_de_naissance,:adresse_mail,:mot_de_passe,:numero_de_telephone,:numero_de_carte_bancaire,:nom_du_titulaire,:type_de_carte,:expiration,:cryptogramme,:pays)');
    $req->execute(array(
     
    'nom' => $nom,  
    'prenom' => $prenom, 
    'date_de_naissance' => $date_de_naissance,
    'adresse_mail' => $adresse_mail,
    'mot_de_passe' => $mot_de_passe,
    'numero_de_telephone' => $numero_de_telephone,
    'numero_de_carte_bancaire' => $numero_de_carte_bancaire,
    'nom_du_titulaire' => $nom_du_titulaire,
    'type_de_carte' => $type_de_carte,
    'expiration' => $expiration,
    'cryptogramme' => $cryptogramme,
    'pays' => $pays,
     
    ));
    echo 'votre compte a bien été enregistré';
    }
    ?>
     
      </body>
      </html>

    maintenant jai cette erreur :
    Notice: Undefined index: expiration in I:\EasyPHP-12.1\www\formulaire_projet_test.php on line 132
    votre compte a bien été enregistré
    je me demandais si sa venais pas de ma base de donnees mais serieusement je ne trouve pas.

    jai modifié ma base de données :

    http://www.hostingpics.net/viewer.ph...nesmodifie.jpg

  6. #6
    Membre chevronné Avatar de humitake
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 399
    Par défaut
    Cela me semble pourtant clair non ?
    Ta variable $_POST['expiration'] est vide ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupération des données de formulaire dans une page JSP
    Par fauthie dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 16/09/2009, 14h02
  2. pb récupération de données de formulaire sous ie
    Par perraudinc dans le forum Struts 2
    Réponses: 1
    Dernier message: 14/10/2008, 23h58
  3. Réponses: 3
    Dernier message: 26/09/2008, 13h10
  4. récupération de données de formulaire
    Par noakiss dans le forum ASP
    Réponses: 19
    Dernier message: 14/08/2008, 22h08
  5. Récupération de données de formulaire dans une fenetre fille
    Par xave dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 03/01/2008, 16h22

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