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

  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 ...

  7. #7
    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
    je dois lui attribuer une valeur mais je met ou le égal?

  8. #8
    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
    Non en fait la variable $_POST['expiration'] n'existe pas ...
    Si tu regarde ton formulaire elle est découpé en deux liste : une pour le mois et une pour l'année. Ce sont donc ces valeurs la que tu dois récupérer.

  9. #9
    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
    <?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'];   
    $mois=$_POST['mois'];                        //ajouté
    $annees=$_POST['annees'];                 //ajouté
    $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,annees,mois')
    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,:annees,:mois)');
    $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,
    'annees' => $annees,
    'mois' => $mois,
    
    ));
    echo 'votre compte a bien été enregistré';
    }
    ?>
    voila j'ai modifié , j'ai même ajouter deux table dans ma base de données mais cela ne marche pas

  10. #10
    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,

    Tu n'as fait que déplacer le problème, et encore ...
    Tu as créer dans ta base de données deux colonnes (mois et année) pour stocker l'expiration. Cependant tu utilise toujours $_POST['expiration'] or cette variable n'existe pas donc il ne faut pas l'utiliser.
    Il faut également que tu la supprime de ta requête sql.

    Cependant je pense que la solution que tu as choisi risque de t'embêter lorsque tu souhaitera vérifier la date d'expiration d'une carte. En effet plutôt que de stocker une date tu stock 2 valeurs ...
    J'aurai, pour ma part, utiliser un champ date dans la base de données et concaténé le mois et l'année pour réaliser le champ expiration :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $expiration = date("m/Y", mktime(0, 0, 0, $_POST['mois'], 1, $_POST['annees']));
    Voir la doc de la fonction date() pour formater la date comme tu souhaite.

  11. #11
    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
    merci pour ta réponse. maintenant ça marche. par contre dans ma base de données j'ai laissé texte au lieu de mettre date qui m'affiche la date en 0000-00-00 sans enregistrer la date.

    maintenant il faut que je cherche un fonction pour la date de naissance.
    voici le nouveau 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
    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
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    <!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="dbb1.php">
     
       <label> Nom</label> : <br><input type="text" name="nom" /> <br>
      <label> Prénom</label> : <br><input type="text" name="prenom" /> <br>
       Date de naissance<br>
       <select name="jour">
       <?php for ($jour = 1 ; $jour <= 31 ; $jour++)
    {
    ?>
                      <option value="<?php echo $jour ?>"><?php echo $jour; ?></option>
    <?php              
    }
    ?>  
    </select>
    <select name="mois">
            <?php for ($mois = 1 ; $mois <= 12 ; $mois++)
    {
    ?>
                      <option value="<?php echo $mois ?>"><?php echo $mois; ?></option>
    <?php              
    }
    ?>  
    </select>
    </select>
    <select name="annee">
            <?php for ($annee = 1900 ; $annee <= 2000 ; $annee++)
    {
    ?>
                      <option value="<?php echo $annee ?>"><?php echo $annee; ?></option>
    <?php              
    }
    ?>  
    </select><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=date("d/m/Y", mktime(0, 0, 0, $_POST['jour'] ,$_POST['mois'], 1, $_POST['annees']));
    $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=date("m/Y", mktime(0, 0, 0, $_POST['mois'], 1, $_POST['annees']));
    $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>  
     </head>

    Deprecated: mktime(): The is_dst parameter is deprecated in K:\EasyPHP-DevServer-13.1VC9\data\localweb\www\dbb1.php on line 154

    j'ai beau cherché une resolution pour le probleme en question sur cette
    ligne mais je narrive pas a corriger le code , je ne sais pas les valeurs quils faut mettre.

    help svp

  12. #12
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Billets dans le blog
    17
    Par défaut
    Il faudrait préciser la ligne et l'erreur php
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  13. #13
    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
    l'erreur a été posté ci-dessus.

    Deprecated: mktime(): The is_dst parameter is deprecated in K:\EasyPHP-DevServer-13.1VC9\data\localweb\www\dbb1.php on line 154

  14. #14
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Billets dans le blog
    17
    Par défaut
    la doc php indique comme paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     mktime (
    [ int $hour = date("H") [,
     int $minute = date("i") [,
     int $second = date("s") [,
     
     int $month = date("n") [, 
    int $day = date("j") [, 
    int $year = date("Y") [,
     
     int $is_dst = -1 ]]]]]]] )
    C'est le dernier paramètre qui est déprécié

    5.1.0 The is_dst parameter became deprecated. Made the function return FALSE on error, instead of -1. Fixed the function to accept the year, month and day to be all passed as zero
    Dans votre code il y a une erreur dans les parametres envoyés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    mktime(
    0, //hour ok
    0, //minute OK
    0,  //second OK
    $_POST['jour'] , //month NOK
    $_POST['mois'], // day NOK
     1, //year NOK
    $_POST['annees'] //is_dst (deprecié) NOK
     
    )
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  15. #15
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Et qu'est-ce que tu ne comprends pas dans ce message ?

    C'est clairement précisé que le paramètre is_dst est déprécié et donc que tu ne devrais pas l'utiliser...
    Ceci dit, au vu de ta syntaxe pour mktime(), il semble que tu ais un problème avec les paramètres.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  16. #16
    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
    en fait je ne comprends comment je peux remplacer cette erreur .

  17. #17
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Billets dans le blog
    17
    Par défaut
    Je vous ai répondu juste au dessus

    Citation Envoyé par moi-même
    la doc php indique comme paramètres :
    mktime (
    [ int $hour = date("H") [,
    int $minute = date("i") [,
    int $second = date("s") [,

    int $month = date("n") [,
    int $day = date("j") [,
    int $year = date("Y") [,

    int $is_dst = -1 ]]]]]]] )
    Dans votre code il y a une erreur dans les parametres envoyés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    mktime(
    0, //hour ok
    0, //minute OK
    0,  //second OK
    $_POST['jour'] , //month NOK
    $_POST['mois'], // day NOK
     1, //year NOK
    $_POST['annees'] //is_dst (deprecié) NOK
     
    )
    Vous avez un problème de paramètres
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  18. #18
    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 la ligne 154 modifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date_de_naissance=date("j/m/y",mktime($_POST['day'] , $_POST['month'], 1, $_POST['year']
    mais cela ne marche tjrs pas et je comprends pas vos int qu'est-qu'ils font là?
    je n'ai pas besoin de savoir l'heure mon but serait d'avoir uniquement la date de naissance.

  19. #19
    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,

    Plutôt que foncer tête baisser à essayer de faire n'importe quoi et prier pour que sa marche tu devrais te poser 5 minutes et lire la doc de mktime()

    Documentation que imikado a eu la gentillesse de te poster et de te commenter ...

    A quoi correspond le 1 dans ton mktime() ? Tu l'as mise juste parce que pour répondre à ta question de la date d'expiration je te l'avais mis ?

    Ce 1 correspond au jour, donc dans ton cas il suffit de le remplacer par $_POST['jour']
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mktime(0, 0, 0, $_POST['mois'], $_POST['jour'], $_POST['annees'])

  20. #20
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Billets dans le blog
    17
    Par défaut
    Merci humitake pour ta réponse


    Citation Envoyé par taidasuke Voir le message
    voila la ligne 154 modifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date_de_naissance=date("j/m/y",mktime($_POST['day'] , $_POST['month'], 1, $_POST['year']
    mais cela ne marche tjrs pas et je comprends pas vos int qu'est-qu'ils font là?
    je n'ai pas besoin de savoir l'heure mon but serait d'avoir uniquement la date de naissance.
    Les "int" ce sont des indiquations dans la documentation officielle:
    mktime (
    [ int $hour = date("H") [,
    int $minute = date("i") [,
    int $second = date("s") [,

    int $month = date("n") [,
    int $day = date("j") [,
    int $year = date("Y") [,

    int $is_dst = -1 ]]]]]]] )
    int signifie "integer" c'est pour indiquer le type de paramètre attendu par la fonction
    On peut traduire la doc par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    mktime (
     $hour , //entier heure
     $minute,//entier minute
     $second , //entier seconde
     
     $month , //entier mois
     $day =, //entier jour
     $year , //entier annee
     
     $is_dst = -1 //fameux parametre is_dst (par défaut à -1) 
     
     )
    note: tous les parametres sauf is_dst sont obligatoires, ils ton nécessaire pour créer un timestamp
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

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

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