Problème formulaire ajout type:radio
Résolu/Fermé
flo39400
Messages postés
596
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
9 septembre 2021
-
Modifié par flo39400 le 27/06/2015 à 16:42
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - 28 juin 2015 à 12:27
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - 28 juin 2015 à 12:27
A voir également:
- Problème formulaire ajout type:radio
- Formulaire de réclamation facebook - Guide
- Incompatibilité de type vba ✓ - Forum Programmation
- Ajout rapide snap - Forum Snapchat
- Comment enlever la limite d'ajout sur snapchat - Forum Snapchat
- Faiblesse type spectre ✓ - Forum Jeux vidéo
5 réponses
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
27 juin 2015 à 17:05
27 juin 2015 à 17:05
Bonjour,
C'est le problème .. lorsqu'on utilise la syntaxe INSERT comme tu le fais ....
Il est préférable de SPECIFIER sur quels champs on insères les données....
Ce qui, pour ton cas, deviendrait :
Et si tu veux y inclure le sexe :
C'est le problème .. lorsqu'on utilise la syntaxe INSERT comme tu le fais ....
Il est préférable de SPECIFIER sur quels champs on insères les données....
Ce qui, pour ton cas, deviendrait :
INSERT INTO membre (_login,_pass_md5,_email,_date_naissance) VALUES ( "Wargame", "4c5e99a2460c3513e3b754de8efe2155", "wargame@gmail.com", "")
Et si tu veux y inclure le sexe :
INSERT INTO membre (_login,_pass_md5,_email,_date_naissance,_sexe) VALUES ( "Wargame", "4c5e99a2460c3513e3b754de8efe2155", "wargame@gmail.com", "","M")
animostab
Messages postés
2829
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
11 novembre 2019
737
27 juin 2015 à 17:28
27 juin 2015 à 17:28
Bonjour
il n'y a pas de value définie pour sexe dans ton input
"<?php if (isset($_POST['sexe'])) echo htmlentities(trim($_POST['sexe'])); ?>
pense que c'est un radio et pas un texte a saisir ou rien ne s'affiche si pas encore posté
mets les valeurs en html
value="F"
value="M"
et teste dans la vérification avant connexion BDD que $_POST['sexe'] existe et est empty
il n'y a pas de value définie pour sexe dans ton input
"<?php if (isset($_POST['sexe'])) echo htmlentities(trim($_POST['sexe'])); ?>
pense que c'est un radio et pas un texte a saisir ou rien ne s'affiche si pas encore posté
mets les valeurs en html
value="F"
value="M"
et teste dans la vérification avant connexion BDD que $_POST['sexe'] existe et est empty
flo39400
Messages postés
596
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
9 septembre 2021
21
27 juin 2015 à 17:37
27 juin 2015 à 17:37
J'ai rien compris, donc comme je disais j'ai bien dans ma base de donnée "test" une table "membre" puis des colonnes dont une qui ce nomme "sexe".
Le but sais que quand je sélectionne par exemple Masculin que cela affiche M dans la base de donnée.
Le but sais que quand je sélectionne par exemple Masculin que cela affiche M dans la base de donnée.
animostab
Messages postés
2829
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
11 novembre 2019
737
27 juin 2015 à 17:49
27 juin 2015 à 17:49
déjà fais ce qu'a dit jordane
puis dans ton form
dans ta verification modifie apres " // on teste l'existence de nos variables. On teste également si elles ne sont pas vides"
puis dans ton form
<label for="M">Masculin</label><input type="radio" id="M" name="sexe" value="M" /> <label for="F">Féminin</label><input type="radio" id="F" name="sexe" value="F" />
dans ta verification modifie apres " // on teste l'existence de nos variables. On teste également si elles ne sont pas vides"
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['sexe']) && !empty($_POST['sexe'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { // on teste les deux mots de passe .....
flo39400
Messages postés
596
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
9 septembre 2021
21
27 juin 2015 à 18:01
27 juin 2015 à 18:01
Donc j'ai modifier et donc toujours la même erreur sauf que cette fois ci j'ai ça:
Erreur SQL !INSERT INTO membre VALUES("", "wargame", "4c5e99a2460c3513e3b754de8efe2155", "wargame@gmail.com", "M")
Column count doesn't match value count at row 1
Erreur SQL !INSERT INTO membre VALUES("", "wargame", "4c5e99a2460c3513e3b754de8efe2155", "wargame@gmail.com", "M")
Column count doesn't match value count at row 1
animostab
Messages postés
2829
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
11 novembre 2019
737
Modifié par animostab le 27/06/2015 à 18:10
Modifié par animostab le 27/06/2015 à 18:10
l'erreur que tu as faite
la value du bouton radio est vide car
1) la value de sexe c'est echo htmlentities(trim($_POST['sexe']))
2) le post n'est pas encore fait à la saisie du formulaire
3) echo htmlentities(trim($_POST['sexe'])) n'affiche donc rien !
4) la value de sexe est donc vide
5) ce qui est posté pour sexe est vide
6) tu ne verifie pas si sexe existe ou est vide donc l'insert dans la bdd se fait
6) la colonne "sexe" de ta BDD ne se rempli pas d'ou erreur sql
la value du bouton radio est vide car
1) la value de sexe c'est echo htmlentities(trim($_POST['sexe']))
2) le post n'est pas encore fait à la saisie du formulaire
3) echo htmlentities(trim($_POST['sexe'])) n'affiche donc rien !
4) la value de sexe est donc vide
5) ce qui est posté pour sexe est vide
6) tu ne verifie pas si sexe existe ou est vide donc l'insert dans la bdd se fait
6) la colonne "sexe" de ta BDD ne se rempli pas d'ou erreur sql
flo39400
Messages postés
596
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
9 septembre 2021
21
27 juin 2015 à 18:12
27 juin 2015 à 18:12
comment je peu changer cela pour que cela fonctionne correctement ?
animostab
Messages postés
2829
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
11 novembre 2019
737
27 juin 2015 à 18:56
27 juin 2015 à 18:56
Il faut donc apprendre un peu ex sur openclassroom il y a plein des cours très complets et gratuits. Le truc ce n'est peu être pas de coder à 300 caractères/minute sans coquilles, mais au moins comprendre un code pour bidouiller dedans.
flo39400
Messages postés
596
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
9 septembre 2021
21
27 juin 2015 à 19:25
27 juin 2015 à 19:25
Bas j'y suis arrivé mais ce truc de radio pour y insérer dans une base de donnée je trouve rien la dessus sinon enregistré des champs écris normal sa vas.
Mais le reste sais chaud pour moi donc je vais abandonnée vu que voila je ne peu avoir d'aide la dessus.
Mais le reste sais chaud pour moi donc je vais abandonnée vu que voila je ne peu avoir d'aide la dessus.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
Modifié par jordane45 le 27/06/2015 à 19:45
Modifié par jordane45 le 27/06/2015 à 19:45
Bas j'y suis arrivé mais ce truc de radio pour y insérer dans une base de donnée je trouve rien la dessus sinon enregistré des champs écris normal sa vas.
Mais le reste sais chaud pour moi donc je vais abandonnée vu que voila je ne peu avoir d'aide la dessus.
... la manipulation des radio button.. se fait de la même manière que pour les autres types de champs....
Il suffit de récupérer la valeur dans la variable $_POST
Pour comprendre ... il te suffit d'ajouter
print_r($_POST);au début de ta page...puis de regarder ce que ça t'affiche...
Ensuite... pour ce qui est de leur affecter une valeur... ce n'est pas pareil que les input ...là .. tu ne touches pas au VALUE.....
tu utilises l'attribut checked.
Voila à quoi devrait ressembler le code de tes radio.
<php $sexe = isset($_POST['sexe'])?$_POST['sexe']:"M"; ?> <br /> <label for="M">Masculin</label> <input type="radio" id="M" name="sexe" value="M" <?php if($sexe=="M"){ echo "checked=\"checked\"";} ?>/> <label for="F">Féminin</label> <input type="radio" id="F" name="sexe" value="F" <?php if($sexe=="F"){ echo "checked=\"checked\"";} ?>/>
Cordialement,
Jordane
flo39400
Messages postés
596
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
9 septembre 2021
21
28 juin 2015 à 08:39
28 juin 2015 à 08:39
Oui mais le code php ici n'est valable que si sais Masculin qui est sélectionné ?
Car j'ai toujours la même erreur SQL :(.
Car j'ai toujours la même erreur SQL :(.
<?php // on teste si le visiteur a soumis le formulaire if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { // on teste l'existence de nos variables. On teste également si elles ne sont pas vides if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['sexe']) && !empty($_POST['sexe'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { // if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { // on teste les deux mots de passe if ($_POST['pass'] != $_POST['pass_confirm']) { $erreur = 'Les 2 mots de passe sont différents.'; } else { $base = mysql_connect ('192.168.1.22', '', ''); mysql_select_db ('test', $base); // on recherche si ce login est déja été utilisé par un autre membre $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); if ($data[0] == 0) { $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'", "'.mysql_escape_string($_POST['email']).'", "'.mysql_escape_string($_POST['sexe']).'")'; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); session_start(); $_SESSION['login'] = $_POST['login']; header('Location: membre.php'); exit(); } else { $erreur = 'Un membre posséde déja ce login.'; } } } else { $erreur = 'Au moins un des champs est vide.'; } } ?> <php $sexe = isset($_POST['sexe'])?$_POST['sexe']:"M"; ?> <html> <head> <title>Inscription</title> <link rel="stylesheet" media="screen" type="text/css" title="design.css" href="design" /> </head> <body> <div id="inscription"> <div class="inscription"> <a href="http://dieutopgun.synology.me">Accueil</a><br /> Inscription à l'espace membre :<br /><br /> <form class="Inscription" action="inscription.php" method="post"> Login :<br /> <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br /> <br />E-Mail :<br /> <input type="email" name="email" value="<? if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>"><br /> <br />Mot de passe :<br /> <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br /> <br />Confirmation du mot de passe : <br /><input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br /> <br /><label for="M">Masculin</label><input type="radio" id="M" name="sexe" value="M" <?php if($sexe=="M"){ echo "checked=\"checked\"";} ?>/> <label for="F">Féminin</label><input type="radio" id="F" name="sexe" value="F" <?php if($sexe=="F"){ echo "checked=\"checked\"";} ?>/> <br /> <br /><input type="submit" name="inscription" value="Inscription"> </form> </div> </div> <?php if (isset($erreur)) echo '<br />',$erreur; ?> </body> </html>
flo39400
Messages postés
596
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
9 septembre 2021
21
Modifié par flo39400 le 28/06/2015 à 12:19
Modifié par flo39400 le 28/06/2015 à 12:19
Bonjour j'ai ajouter comme vous avez dit au début de ma page voila le code qui s'affiche:
Array ( [login] => war [email] => CCM@ccm.com [pass] => CCMccm [pass_confirm] => CCMccm [sexe] => M [regagree] => valeur [inscription] => Inscription ) Erreur SQL !INSERT INTO membre VALUES("", "war", "9131c46e2ae4e6f9bc02724f00fb32ed", "CCM@ccm.com", "M")
Column count doesn't match value count at row 1
PS: j'ai fait une petite modification pour que les personnes qui s'inscrive doivent obligatoirement accepter le règlement. Sinon ils ne peuvent validé le formulaire.
<?php print_r($_POST); // on teste si le visiteur a soumis le formulaire if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { // on teste l'existence de nos variables. On teste également si elles ne sont pas vides if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['sexe']) && !empty($_POST['sexe'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { // if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { // on teste les deux mots de passe if ($_POST['pass'] != $_POST['pass_confirm']) { $erreur = 'Les 2 mots de passe sont différents.'; } else { $base = mysql_connect ('192.168.1.22', '', ''); mysql_select_db ('test', $base); // on recherche si ce login est déja été utilisé par un autre membre $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); if ($data[0] == 0) { $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'", "'.mysql_escape_string($_POST['email']).'", "'.mysql_escape_string($_POST['sexe']).'")'; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); session_start(); $_SESSION['login'] = $_POST['login']; header('Location: membre.php'); exit(); } else { $erreur = 'Un membre posséde déja ce login.'; } } } else { $erreur = 'Au moins un des champs est vide.'; } } ?> <php $sexe = isset($_POST['sexe'])?$_POST['sexe']:"M"; ?> <html> <head> <title>Inscription</title> <link rel="stylesheet" media="screen" type="text/css" title="design.css" href="design" /> <script type="text/javascript"> function ChangeStatut(formulaire) { formulaire.inscription.disabled=!formulaire.regagree.checked; } </script> </head> <body> <div id="inscription"> <div class="inscription"> <a href="http://dieutopgun.synology.me">Accueil</a><br /> Inscription à l'espace membre :<br /><br /> <form class="Inscription" action="inscription.php" method="post"> Login :<br /> <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br /> <br />E-Mail :<br /> <input type="email" name="email" value="<? if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>"><br /> <br />Mot de passe :<br /> <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br /> <br />Confirmation du mot de passe : <br /><input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br /> <br /><label for="M">Masculin</label><input type="radio" id="M" name="sexe" value="M" <?php if($sexe=="M"){ echo "checked=\"checked\"";} ?>/> <label for="F">Féminin</label><input type="radio" id="F" name="sexe" value="F" <?php if($sexe=="F"){ echo "checked=\"checked\"";} ?>/> <br /> <p><input type="checkbox" name="regagree" value="valeur" onClick="ChangeStatut(this.form)" /> J'accepte le reglement</p> <br /><input type="submit" name="inscription" value="Inscription" disabled > </form> </div> </div> <?php //if (isset($erreur)) echo '<br />',$erreur; ?> </body> </html>
Array ( [login] => war [email] => CCM@ccm.com [pass] => CCMccm [pass_confirm] => CCMccm [sexe] => M [regagree] => valeur [inscription] => Inscription ) Erreur SQL !INSERT INTO membre VALUES("", "war", "9131c46e2ae4e6f9bc02724f00fb32ed", "CCM@ccm.com", "M")
Column count doesn't match value count at row 1
PS: j'ai fait une petite modification pour que les personnes qui s'inscrive doivent obligatoirement accepter le règlement. Sinon ils ne peuvent validé le formulaire.
flo39400
Messages postés
596
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
9 septembre 2021
21
28 juin 2015 à 12:27
28 juin 2015 à 12:27
Sais bon tous marche merci Jordane45 vraiment, ça ma permis de réfléchir car sais normal que j'avais toujours erreur vu que j'ai ajouter le champs "date_naissance" et que je l'est pas renseigner il est normal que cela ne marche pas.
Modifié par flo39400 le 27/06/2015 à 18:44
27 juin 2015 à 18:46
Voila pourquoi pour le moment je me suis dit je le crée dans la table mais je m'en sert pas.