[php] [sql] Aucune insertion dans la table
Résolu
ced3E
Messages postés
101
Date d'inscription
Statut
Membre
Dernière intervention
-
avion-f16 Messages postés 19256 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19256 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je viens de crée mon formulaire html traitement php ma base de donné et ma table sql mais j' ai aucune donné qui se stocke dans celle ci.
Je ne comprend pas trop ou j' ai fais une erreur aprés avoir chercher je ne trouve rien :(
Merci d' avance de votre aide par ce que la je suis un peu perdu.
code html :
code php :
Table sql :
id int(11) Non Aucunauto_increment
Prenom varchar(255) latin1_swedish_ci Non Aucun
Nomdefamille varchar(255) latin1_swedish_ci Non Aucun
email varchar(255) latin1_swedish_ci Non Aucun
Votremotdepasse varchar(32) latin1_swedish_ci Non Aucun
sexe tinyint(1) Non Aucun
Datedenaissance date Non Aucun
Je viens de crée mon formulaire html traitement php ma base de donné et ma table sql mais j' ai aucune donné qui se stocke dans celle ci.
Je ne comprend pas trop ou j' ai fais une erreur aprés avoir chercher je ne trouve rien :(
Merci d' avance de votre aide par ce que la je suis un peu perdu.
code html :
<form method="post" action="Formulaire.php"> <div id="label"> <p align="right"><label for="Prenom">Prénom</label> : <input type="text" name="Prenom" id="Prenom" style="height:15px; width:110px; font-size:15px;" /></p> <p align="right"><label for="Nomdefamille">Nom de famille</label> : <input type="text" name="Nomdefamille" id="Nomdefamille"style="height:15px; width:110px; font-size:15px;" /></p> <p align="right"><label for="email">Votre email</label> : <input type="text" name="email" id="email" style="height:15px; width:110px; font-size:15px;" /></p> <p align="right"><label for="email2">Répétez l'email</label> : <input type="text" name="email2" id="email2" style="height:15px; width:110px; font-size:15px;"/></p> <p align="right"><label for="Votremotdepasse">Mot de passe</label> : <input type="password" name="Votremotdepasse" id="Votremotdepasse" style="height:15px; width:110px; font-size:15px;" /></p> </div> <div id="labelsexe"> <p align="center"> <label for="sexe">Vous êtes :</label> <select name="sexe"id="sexe"> <option selected value="1">Un homme</option> <option value="2">Une femme</option> </p> </select> <br> <input type="checkbox" name="checkbox" value="1" />j'ai lu les <strong><a href="../../cgu.php">conditions d'utilisation</a></strong> </div> <div id="labelage"> <p align="center"> <label for="Datedenaissance">Date de naissance :</label><br> <select name="jour" id="jour"> <option selected 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> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option> </select> <select name="mois" id="mois" > <option selected 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> <select name="annee"id="annee" > <option selected value="2011">2011</option> <option value="2010">2010</option> <option value="2009">2009</option> <option value="2008">2008</option> <option value="2007">2007</option> <option value="2006">2006</option> <option value="2005">2005</option> <option value="2004">2004</option> <option value="2003">2003</option> <option value="2002">2002</option> <option value="2001">2001</option> <option value="2000">2000</option> <option value="1999">1999</option> <option value="1998">1998</option> <option value="1997">1997</option> <option value="1996">1996</option> <option value="1995">1995</option> <option value="1994">1994</option> <option value="1993">1993</option> <option value="1992">1992</option> <option value="1991">1991</option> <option value="1990">1990</option> <option value="1989">1989</option> <option value="1988">1988</option> <option value="1987">1987</option> <option value="1986">1986</option> <option value="1985">1985</option> <option value="1984">1984</option> <option value="1983">1983</option> <option value="1982">1982</option> <option value="1981">1981</option> <option value="1980">1980</option> <option value="1979">1979</option> <option value="1978">1978</option> <option value="1977">1977</option> <option value="1976">1976</option> <option value="1975">1975</option> <option value="1974">1974</option> <option value="1973">1973</option> <option value="1972">1972</option> <option value="1971">1971</option> <option value="1970">1970</option> <option value="1969">1969</option> <option value="1968">1968</option> <option value="1967">1967</option> <option value="1966">1966</option> <option value="1965">1965</option> <option value="1964">1964</option> <option value="1963">1963</option> <option value="1962">1962</option> <option value="1961">1961</option> <option value="1960">1960</option> <option value="1959">1959</option> <option value="1958">1958</option> <option value="1957">1957</option> <option value="1956">1956</option> <option value="1955">1955</option> <option value="1954">1954</option> <option value="1953">1953</option> <option value="1952">1952</option> <option value="1951">1951</option> <option value="1950">1950</option> <option value="1949">1949</option> <option value="1948">1948</option> <option value="1947">1947</option> <option value="1946">1946</option> <option value="1945">1945</option> <option value="1944">1944</option> <option value="1943">1943</option> <option value="1942">1942</option> <option value="1941">1941</option> <option value="1940">1940</option> <option value="1939">1939</option> <option value="1938">1938</option> <option value="1937">1937</option> <option value="1936">1936</option> <option value="1935">1935</option> <option value="1934">1934</option> <option value="1933">1933</option> <option value="1932">1932</option> <option value="1931">1931</option> <option value="1930">1930</option> <option value="1929">1929</option> <option value="1928">1928</option> <option value="1927">1927</option> <option value="1926">1926</option> <option value="1925">1925</option> <option value="1924">1924</option> <option value="1923">1923</option> <option value="1922">1922</option> <option value="1921">1921</option> <option value="1920">1920</option></select> </p> </div> <div id="boutonValider"> <INPUT type=image Value=submit border=0 src="Apel.gif" align="middle" ><-Valider </div> </from>
code php :
<?php mysql_connect("localhost","root", "") OR die('Erreur de connexion à la base'); mysql_select_db("myphone"); $Prenom = isset($_POST['Prenom']) ? trim(mysql_real_escape_string($_POST['Prenom'])) : ''; $Nomdefamille = isset($_POST['Nomdefamille']) ? trim(mysql_real_escape_string($_POST['Nomdefamille'])) : ''; $Votremotdepasse = isset($_POST['Votremotdepasse']) ? trim(mysql_real_escape_string($_POST['Votremotdepasse'])) : ''; $email = isset($_POST['email']) ? (mysql_real_escape_string($_POST['email'])) : ''; $email2 = isset($_POST['email2']) ? (mysql_real_escape_string($_POST['email2'])) : ''; $sexe = isset($_POST['sexe']) ? (mysql_real_escape_string($_POST['sexe'])) : ''; $jour = isset($_POST['jour']) ? (mysql_real_escape_string($_POST['jour'])) : ''; $mois = isset($_POST['mois']) ? trim(mysql_real_escape_string($_POST['mois'])) : ''; $annee = isset($_POST['annee']) ? trim(mysql_real_escape_string($_POST['annee'])) : ''; $Datedenaissance = $jour . '/' . $mois . '/' . $annee; $errors = array(); if(isset($_POST["checkbox"]) == "" ) $errors[] = 'La casse des Conditions d\'utilisation est non cochée'; if(strlen($Prenom) < 3) $errors[] = 'Le prénom doit contenir au moins 3 caractères'; if(strlen($Prenom) > 15) $errors[] = 'Le prénom ne doit pas contenir plus de 15 caractères'; if(!preg_match('#^[a-zA-ZÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ-]+$#', $Prenom)) $errors[] = 'Le Prénom ne doit contenir que des caractères de type lettre'; if(strlen($Nomdefamille) < 3) $errors[] = 'Le nom de famille doit contenir au moins 3 caractères'; if(strlen($Nomdefamille) > 15) $errors[] = 'Le nom de famille doit ne doit pas contenir plus de 15 caractères'; if(!preg_match('#^[a-zA-ZÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ-]+$#', $Nomdefamille)) $errors[] = 'Le Nom de famille ne doit contenir que des caractères de type lettre'; if(strlen($Votremotdepasse) < 5) $errors[] = 'Votre mot de passe doit contenir au moins 3 caractères'; if(strlen($Votremotdepasse) > 20) $errors[] = 'Votre mot de passe ne doit pas contenir plus de 20 caractères'; if(!filter_var($email, FILTER_VALIDATE_EMAIL)) $errors[] = 'L\'adresse email est non invalide'; if($email !== $email2) $errors[] = 'Les adresses emails entrées ne correspondent pas'; if(count($errors) > 0) { echo '<div class="errors">'; echo 'Il y a '.count($errors).' erreur(s) :<br/>'; foreach($errors as $error){ echo '- '.$error.'<br/>'; } echo '</div>'; } else{ $sql="INSERT INTO membres(Prenom, Nomdefamille,email,Votremotdepasse,sexe,Datedenaissance,email) VALUES('$Prenom','$Nomdefamille','$email','$Votremotdepasse','$sexe','$Datedenaissance')"; if(mysql_query($sql)) echo"<br/><br/>Vos données ont bien été envoyées."; } ?>
Table sql :
id int(11) Non Aucunauto_increment
Prenom varchar(255) latin1_swedish_ci Non Aucun
Nomdefamille varchar(255) latin1_swedish_ci Non Aucun
email varchar(255) latin1_swedish_ci Non Aucun
Votremotdepasse varchar(32) latin1_swedish_ci Non Aucun
sexe tinyint(1) Non Aucun
Datedenaissance date Non Aucun
A voir également:
- [php] [sql] Aucune insertion dans la table
- Table ascii - Guide
- Insertion table des matières word - Guide
- Touche insertion clavier - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
3 réponses
Salut.
Pour commencer, voilà le code de ton formulaire validé et allégé :
https://gist.github.com/8391960a2990ea7bac95
@Framboos: Ta solution ne fonctionnera pas : tu ajoutes la colonne pour l'id dans VALUES() mais pas dans la première parenthèse.
Si l'id est en auto_increment, tu n'es pas obligé de le préciser dans aucune des parenthèses.
Par contre, utiliser mysql_erro() est une bonne idée.
Pour commencer, voilà le code de ton formulaire validé et allégé :
https://gist.github.com/8391960a2990ea7bac95
@Framboos: Ta solution ne fonctionnera pas : tu ajoutes la colonne pour l'id dans VALUES() mais pas dans la première parenthèse.
Si l'id est en auto_increment, tu n'es pas obligé de le préciser dans aucune des parenthèses.
Par contre, utiliser mysql_erro() est une bonne idée.
Bonjour,
Tu oublies d'enregistrer l'id du membre dans ta requête :
D'ailleurs il semble ne pas s'incrémenter automatiquement ... si c'est le cas je te conseille de régler ton champ id sur auto incrémentation.
Tu as :
Essaye ceci :
Et vu que tu utilises tout les champs de ta table tu n'est pas obligé de les préciser, donc tu peux écrire ceci ;
Bon courage pour la suite ;) ...
Tu oublies d'enregistrer l'id du membre dans ta requête :
D'ailleurs il semble ne pas s'incrémenter automatiquement ... si c'est le cas je te conseille de régler ton champ id sur auto incrémentation.
Tu as :
else{ $sql="INSERT INTO membres(Prenom, Nomdefamille, email, Votremotdepasse, sexe, Datedenaissance, email) VALUES('$Prenom', '$Nomdefamille', '$email', '$Votremotdepasse', '$sexe', '$Datedenaissance')"; if(mysql_query($sql)) echo"<br/><br/>Vos données ont bien été envoyées."; }
Essaye ceci :
$sql="INSERT INTO membres(id, Prenom, Nomdefamille,email, Votremotdepasse,sexe, Datedenaissance, email) VALUES('', '$Prenom', '$Nomdefamille', '$email', '$Votremotdepasse', '$sexe', '$Datedenaissance')"; $result = mysql_query($sql); if (!$result) { die('Requête invalide : ' . mysql_error()); }
Et vu que tu utilises tout les champs de ta table tu n'est pas obligé de les préciser, donc tu peux écrire ceci ;
$sql="INSERT INTO membres VALUES('', '$Prenom', '$Nomdefamille', '$email', '$Votremotdepasse', '$sexe', '$Datedenaissance')";
Bon courage pour la suite ;) ...
Merci tout le monde ça marche super bien :)
Effectivement j' ai changer l' ordre de la date de naissance ;)
avion-f16 : merci pour avoir ajouter le php a mon code qui effectivement est bien moins lourd ! le php ça change la vie ? ^^
Par contre je vais devoir crée un login et un auto login a l' inscription avec les valeurs rentrer, pour rediriger sur la page personnelle de chaqu' un avec l' id utilisateur, mais je ne sais pas comment crée automatiquement une page personnelle aprés l' inscription une idée ?
Effectivement j' ai changer l' ordre de la date de naissance ;)
avion-f16 : merci pour avoir ajouter le php a mon code qui effectivement est bien moins lourd ! le php ça change la vie ? ^^
Par contre je vais devoir crée un login et un auto login a l' inscription avec les valeurs rentrer, pour rediriger sur la page personnelle de chaqu' un avec l' id utilisateur, mais je ne sais pas comment crée automatiquement une page personnelle aprés l' inscription une idée ?
Il va falloir créer un seul script pour afficher la page de profil.
Si le profil est publique, alors il faudra passer en paramètre GET (dans l'URL) l'id du membre.
Si le profil n'est accessible que par le membre, alors il faudra utiliser les sessions pour stocker son id lorsqu'il se connectera.
Grâce à cet id, tu pourras récupérer toutes les informations le concernant en une seule requête.
Si le profil est publique, alors il faudra passer en paramètre GET (dans l'URL) l'id du membre.
Si le profil n'est accessible que par le membre, alors il faudra utiliser les sessions pour stocker son id lorsqu'il se connectera.
Grâce à cet id, tu pourras récupérer toutes les informations le concernant en une seule requête.
Oui effectivement les profils ne seront accessible que par les membres et chaque membre aura donc ça propre page avec sont profil. Donc oui l' utilisation de l' id est indispensable.
Je regarde le tuto http://www.lephpfacile.com/howto/10-comment-faire-un-espace-membre-en-php qui est une bonne base pour le login, mais pour se qui est de l' utilisation de l' id je ne sais pas trop comment mis prendre.De plus le login devra comprendre l' id pour diriger sur la bonne page. Mais ma question est comment crée cette fameuse page automatiquement car je vais pas crée une page a chaque membre manuellement ^^
Je regarde le tuto http://www.lephpfacile.com/howto/10-comment-faire-un-espace-membre-en-php qui est une bonne base pour le login, mais pour se qui est de l' utilisation de l' id je ne sais pas trop comment mis prendre.De plus le login devra comprendre l' id pour diriger sur la bonne page. Mais ma question est comment crée cette fameuse page automatiquement car je vais pas crée une page a chaque membre manuellement ^^
Ou alors ca vient peut être de $Datedenaissance.
$Datedenaissance = $jour . '/' . $mois . '/' . $annee;
et dans la base Datedenaissance et de type date
il faut surement convertir la date de naissance en timestamp, je pense que l'erreur vient plutôt d'ici.
« Aucun » n'est pas censé être attaché à « auto_increment », c'est parce qu'il a fait un copier/coller depuis un tableau.
Bien vu, il y a une erreur, sauf que le type DATE stocke les dates au format AAAA-MM-JJ
Pour stocker un timestamp, on utilise le type INT.
Le type TIMESTAMP contient la date au format AAAAMMJJHHMMSS.
Par: