formulaire radio, checkbox, select et insertion base MySql

foz

Nouveau membre
Bonjour à toutes et tous,

Je suis un nouveau futur webmaster qui ne demande qu'à apprendre et comprendre pour pouvoir avancer.
Merci d'avance pour l'aide que vous pourrez m'apporter.
Voici mon problème:

J'ai créé un formulaire d'inscription pour le site que je compte mettre en ligne plus tard. Avec beaucoup de temps et de patience je suis arrivé à obtenir un formulaire qui fonctionne trés bien avec les champs login, password, nom, prénom et email.
Seulement voilà, j'ai besoin de rajouter dans mon formulaire les indications suivantes: bouton radio du sexe de la personne, date de naissance, origine de sa venue, parrain éventuel et checkbox règlement.
J'ai donc intégrer dans mon formulaire les infos suivantes :

Code:
<tr>
  <td valign="top"><input name="sexe" value="F" type="radio" id="sexe" />Féminin</td>
  <td valign="top"><input name="sexe" value="M" type="radio" id="sexe" />Masculin</td>
</tr>
Code:
<tr>    
  <td>Votre date de naissance:<br /></td>
  <td valign="top"><select name="jour" type="enum" id="age">
        <option value="">Jour
        <option value="1">1................<option value="31">31
      </select>
      <select name="mois" type="enum" id="age">
        <option value="">Mois
        <option value="01">janvier..................<option value="12">décembre
      </select>
      <select name="annee" type="enum" id="age">
        <option value="">Année
        <option value="1920">1920..............<option value="2006">2006
      </select></td>
</tr>
Code:
<tr>
    <td>Comment avez-vous connu ..........?<br /></td>
    <td valign="top"><select name="origine" type="enum" id="origine">
        <option value="0">Choix
        <option value="1">Un annuaire
        <option value="2">Un lien
        <option value="3">Un moteur de recherche
        <option value="4">Une publicité
        <option value="5">Au hasard
        <option value="6">Un ami
        <option value="7">Autre
     </select></td>
</tr>
Code:
<tr>
      <td>Parrainage:<br /></td>
      <td valign="top"><input name="parrain" type="text" id="parrain" size=12 maxlength=50></td>
</tr>
et enfin:
Code:
<tr>
    <td>J'accepte le règlement et m'engage à le respecter<br />
    <td valign="top"><input type="checkbox" name="reglement" id="reglement"></td>
</tr>

Le problème, c'est que je ne sais pas comment je dois modifier ma base de données pour que ces nouvelles valeurs y soient intégrées et que tous ces rajouts me provoquent des erreurs lorsque je valide mon formulaire et que je n'arrive pas à les rectifier.
Exemple: si je rajoute $age = $_POST['age']; j'ai une erreur de variable à la validation idem si je ne coche pas la case du règlement j'ai une autre erreur à l'écran.........
Et là je ne sais pas comment gérer ces nouvelles erreurs dans mon code donc si quelqu'un pouvait m'aider voire si un webmaster confirmé accepterait de m'apporter son aide il serait le bienvenu.

Exemple de gestion d'erreur dans mon code qui fonctionne parfaitement:

Code:
else if($_POST['prenom'] == ""){
        header("Location:inscription.php?erreur=prenom");
    }
résultat:
Code:
<?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "prenom")) {?>
        <p>Veuillez saisir votre pr&eacute;nom.</p>
    <?php } ?>

J'attends vos réponses avec impatience mais soyez indulgents svp car je pratique depuis peu et j'ai besoin d'explications détaillées.
Merci

Edit: petite précision: parmis ces nouveaux champs seuls le champ sexe et règlement seront obligatoires
 

zeb

Modérateur
Vous devez être connecté pour voir les images.


[strike]Donc commence par lire ceci :

Donc ensuite clique sur et modifie ton message.

Maintenant que tu es affranchi, Bienvenue sur PPC.[/strike]
 

foz

Nouveau membre
Inutile que je perde davantage de temps sur ce forum car de toute évidence ou bien personne ne connaît la réponse ici ou bien vous refusez de communiquer votre savoir !!!

Salut
 

KangOl

Grand Maître
Ho ! faut pas le prendre comme ca ! On te demande juste d'éditer ton message et d'entrer ton code source des balise
Code:
 et [ /code] de manière à ce que ce soit plus lisible ! Rien de plus ...

Aussi, bien que ton message soit bien écris, je n'ai pas compris ton problème. Quel est exactement le soucis avec le code que tu postes ?
 

foz

Nouveau membre
Voilà j'ai rééditer tout le message avec les balises et je l'aie modifié aussi pour la compréhension.
 

elect

Expert
J'arrive pas trop a te suivre dans ton truc , donc , pourai tu métre tel quel les 2 fichiers que tu as ...

Puis petit conceil , Teste toujour ton script en cours de route , juste avec echo sa s'est un petit conceil de newb , une erreur est plus facilement retrouvable sur 10 lignes que 30 .....

Puis pour ton formulaire ,

Code:
# <select name="jour" type="enum" id="age">
#         <option value="">Jour
#         <option value="1">1................<option value="31">31
#       </select>

Tu peux remplacer par
Code:
$nb=0
For($i=1,$i<32,$i++)
{
$nb++
echo"<option value="$nb">$nb";
}

Mais attention , ton formulaire s'appelleras inscription.php , mais pas .html
 

KangOl

Grand Maître
bon :
1/ la mise en page par tableau c'était il y a 10 ans :o Regarde du coté des css et de l'xhtml (et plus précisément du coté des balises label, fieldset et legend)
2/ un id est par définition unique :o
3/ le type="enum" des <select> est inutile. je me demande meme si c'est correct !
4/ et si tu donnais les erreurs que tu obtiens ? on pourrait peut etre t'aider plus ...
 

foz

Nouveau membre
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\ok\inscription.php on line 38

qui correspond à :
Code:
if(mysql_num_rows($result) != 0){
        while($row = mysql_fetch_array($result)){
    if($row["login"] == $_POST["login"]){
        header("Location:inscription.php?erreur=login");
        break;
    }
    else if($row["email"] == $_POST["email"]){
        header("Location:inscription.php?erreur=email1");
        break;}}
    }

ou encore:
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\ok\inscription.php:38) in c:\program files\easyphp1-8\www\ok\inscription.php on line 51
qui correspond à:
Code:
header("Location:inscription.php?add=ok");

Mais les erreurs c'est normal puisque je ne sais pas comment je dois remplir les nouveaux champs correspondants dans ma table de données MySql et que je n'ai pas encore intégré les gestions d'erreurs dans mon formulaire.
Sans ces nouveaux champs mon formulaire tourne parfaitement sans aucune erreurs de header ou d'arguments valides.
Ma question c'est comment dois je créer ma table sql et quels sont les codes erreurs que je dois intégrer dans ma page inscription.
Et enfin, comment faire pour que ces nouveaux champs une fois dans la table SQL se remplissent comme les autres.
Sinon as tu msn ? As tu déjà une bonne expérience de la création de site et peux tu m'offrir ton aide ?
J'ai besoin de comprendre c'est clair sinon je n'avancerais pas mais je ne peux pas non plus vous dévoiler mes codes complets car le site que je compte réaliser comporte des intérêts financier.
 

KangOl

Grand Maître
allez, avoues que c'est pas toi qui a coder ce qui existe déjà !
Parce que c'est exactement le même mode opératoire que pour les premiers champs que tu aurais du appliquer.

sinon pour les erreurs : la seconde est du a la première apparement
la première viens du faite que ta requetes n'est pas bonne. ajoute un
Code:
or die(mysql_error())
derriere ta requete ...

et il serait peut etre temps d'apprendre le language dans lequel on code avant de taper des lignes sans rien comprendre ...
 

foz

Nouveau membre
J'ai tout fais tout seul et tu ne comprends rien a ce que je demande donc t'es pas balaise du tout ou tu le fais exprés.
C'est ma base sql qui n'est pas correcte et je vois que tu ne sais pas non plus comment faire.
Ma demande c'est de savoir si quelqu'un peut me réécrire ma table SQL avec tous ces éléments rajoutés ainsi que les gestions d'erreurs à rajouter à mon code pour être sûr que les nouveaux arrivants aient cochés la case règlement entre autre!
 

KangOl

Grand Maître
alors :
1/ on a pas fait BAC V nous :o On est pas devin. on peut pas deviner la structure de ta base. Alors soit tu nous la donne soit tu te débrouilles tout seul.
2/ pour tes controles d'entrées, c'est exactement le meme principe que pour les autres champs. Je vois pas ce qui te bloque.

[humour] ps : comme dit le proverbe : Celui qui ne sais pas se faire comprendre d'un autre est un imbecile. [/humour]
 

foz

Nouveau membre
Bon, je tourne en rond et je n'avance pas donc j'ai viré tous les nouveaux champs pour les replacer un par un pour mieux les gérer.

Je commence par la date de naissance donc à l'écran j'ai :
Votre date de naissance: jour mois année avec mes barres de défilements mais le problème ici c'est que seule la dernière donnée c'est à dire l'année est enregistrée dans ma base.
Comment faut-il que je fasse pour enregistrer la date de naissance en entier dans le même champ (date) SQL ???

Voici le code:
Code:
<tr>
      <td>Votre date de naissance:<br /></td>
      <td valign="top"><select name="age" type="text" id="age">
        <option value="">Jour
        <option value="01">01<option value="02">02<option value="03">03<option value="04">04<option value="05">05<option value="06">06
        <option value="07">07<option value="08">08<option value="09">09<option value="10">10<option value="11">11<option value="12">12
        <option value="13">13<option value="14">14<option value="15">15<option value="16">16<option value="17">17<option value="18">18
        <option value="19">19<option value="20">20<option value="21">21<option value="22">22<option value="23">23<option value="24">24
        <option value="25">25<option value="26">26<option value="27">27<option value="28">28<option value="29">29<option value="30">30
        <option value="31">31
      </select>
      <select name="age">
        <option value="">Mois
        <option value="01">janvier<option value="02">février<option value="03">mars<option value="04">avril<option value="05">mai
        <option value="06">juin<option value="07">juillet<option value="08">août<option value="09">septembre<option value="10">octobre
        <option value="11">novembre<option value="12">décembre
      </select>
      <select name="age">
        <option value="">Année
        <option value="1920">1920<option value="1921">1921<option value="1922">1922<option value="1923">1923<option value="1924">1924
        <option value="1925">1925<option value="1926">1926<option value="1927">1927<option value="1928">1928<option value="1929">1929
        <option value="1930">1930<option value="1931">1931<option value="1932">1932<option value="1933">1933<option value="1934">1934
        <option value="1935">1935<option value="1936">1936<option value="1937">1937<option value="1938">1938<option value="1939">1939
        <option value="1940">1940<option value="1941">1941<option value="1942">1942<option value="1943">1943<option value="1944">1944
        <option value="1945">1945<option value="1946">1946<option value="1947">1947<option value="1948">1948<option value="1949">1949
        <option value="1950">1950<option value="1951">1951<option value="1952">1952<option value="1953">1953<option value="1954">1954
        <option value="1955">1955<option value="1956">1956<option value="1957">1957<option value="1958">1958<option value="1959">1959
        <option value="1960">1960<option value="1961">1961<option value="1962">1962<option value="1963">1963<option value="1964">1964
        <option value="1965">1965<option value="1966">1966<option value="1967">1967<option value="1968">1968<option value="1969">1969
        <option value="1970">1970<option value="1971">1971<option value="1972">1972<option value="1973">1973<option value="1974">1974
        <option value="1975">1975<option value="1976">1976<option value="1977">1977<option value="1978">1978<option value="1979">1979
        <option value="1980">1980<option value="1981">1981<option value="1982">1982<option value="1983">1983<option value="1984">1984
        <option value="1985">1985<option value="1986">1986<option value="1987">1987<option value="1988">1988<option value="1989">1989
        <option value="1990">1990<option value="1991">1991<option value="1992">1992<option value="1993">1993<option value="1994">1994
        <option value="1995">1995<option value="1996">1996<option value="1997">1997<option value="1998">1998<option value="1999">1999
        <option value="2000">2000<option value="2001">2001<option value="2002">2002<option value="2003">2003<option value="2004">2004
        <option value="2005">2005<option value="2006">2006
      </select></td></tr>
 

elect

Expert
Deja , a la place de encombrer la téte avec un long script en HTML , tu est mieu a faire <input type="text" value="on_ne_sait_pas_trop">puis un bouton submit ... sa allégeras fort ton script , puis comme sa tu met dés le début de ton script en PHP $truc=$_post['truc']

On t'as jamais expliquer , qui falait tenter simple et apré améliorer le grafisme

Enfain , ton script HTML ( inscription ) on s'en moque , se qui est plus interessant , s'est l'integralité de ton script de ton script PHP ... ( certes , je ne suis pas fort , et je galére pour utiliser le SQL dans un script PHP , mais je donne accés a tout , sa facilite grandement la compréanction du script .... )
 

KangOl

Grand Maître
elec > tu peux faire un effort de rédaction et ecrire en francais stp ? merci :merci:
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 836
Membres
1 586 369
Dernier membre
Mouslah
Partager cette page
Haut