Formulaire html et php

Fermé
Lise - 26 mai 2010 à 13:31
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 - 26 mai 2010 à 18:29
Bonjour,
Voila je suis débutante en php et je voudrais faire un formulaire de contact html avec vérification et récupération des donnée en php, pour la partie html il n'y a pas de soucis. mais niveau php c'est 0
J'aimerai bien qu' une fois que la personne ai fini de remplir son formulaire il y a une vérification des données et si tout est bien remplis il y a un message qui apparait sur la meme page pour lui confirmer l'envoie de son message sinon un message lui disant de remplir les champs obligatoire.
Un grand Merci
Voici le code en html:

<form action="formulaire.php" method="post" >
<br/>
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="4" CLASS="content">

<TR>

<TD WIDTH="45%"> First Name:<BR>


<input name="name" type='text' size='25' class="writein">

</TD>

<TD WIDTH="55%"> Family Name:<BR>
<INPUT TYPE="text" NAME="surname" SIZE="25">
</TD>
</TR>


<TR>
<TD WIDTH="45%">Street:<BR>
<INPUT TYPE="text" NAME="street" SIZE="25">
</TD>

<TD WIDTH="55%"> Nr:<BR>

<INPUT TYPE="text" NAME="nrstreet" SIZE="3" >

</TD>

</TR>

<TR>

<TD WIDTH="45%">City:<BR>

<INPUT TYPE="text" NAME="city" SIZE="20">

</TD>

<TD WIDTH="55%">Zip code:<BR>

<INPUT TYPE="text" NAME="zip" SIZE="10" >

</TD>

</TR>

<TR>

<TD WIDTH="45%">Email:<BR>

<INPUT TYPE="text" NAME="email" SIZE="25" >

</TD>

<TD WIDTH="55%">Telephone:<BR>

<INPUT TYPE="text" NAME="tel" SIZE="25" >

</TD>

</TR>

<TR>

<TD COLSPAN="2">Country:<BR>

<SELECT name="choix">

<OPTION selected VALUE="">Country

<OPTION VALUE="Algeria">Algeria

<OPTION VALUE="Zimbabwe">Zimbabwe</option>

</SELECT>


<BR>

</TD>

</TR>

<TR>

<TD COLSPAN="2"> Your Message or Question:<BR>
<textarea name="msg"cols="25" ="" wrap="virtual" rows="10" class="writein" style="width:400px; height:200px;"></textarea>

<br/>

</TD>

</TR>

<TR>

<TD COLSPAN="2">


<INPUT type="submit" NAME="send" VALUE="Send Message" CLASS="form_normal" />

<INPUT TYPE="RESET" NAME="Reset" VALUE="Clear" CLASS="form_normal"/>

</TD>

</TR>

</TABLE>


</TD>

</TR>

</TABLE>

</TD>

<TD WIDTH="181" VALIGN="TOP" CLASS="dotted_v">



</TD>

</TR>

</TABLE>

</form>
A voir également:

4 réponses

xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
26 mai 2010 à 13:32
Salut,
Personnelement je ferais ca en JavaScript, ce qui t'éviterais de recharger ta page si les champs ne sont pas tous rempli correctement.
0
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 112
26 mai 2010 à 13:58
Javascript c'est bien joli, mais il ne faut pas négliger le langage côté serveur => PHP.
0
biboo_ Messages postés 1249 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 14 mars 2012 106
26 mai 2010 à 13:59
Si tu peux déléguer côté JavaScript, autant le faire.
En terme de performance, ça permet de retirer pas mal de charge côté traitement serveur..
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
26 mai 2010 à 14:01
C'est sur que de toute facon, il y'aura un traitement cote serveur pour gérer la récéption des infos du formulaire et leur traitement!
Mais pour les contrôle, ca me semble plus propice en JS, ca soulage la BP et le travail du serveur comme l'as dis biboo!
0
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 112
26 mai 2010 à 14:05
Ah oui bien sûr, j'avais compris que tu voulais éradiquer PHP.
Ceci dit, quand je vois le morceau du code source, lui donner la solution des conditions php, avec isset par exemple, est mieux adapté ; nan ?! ( dans adapté, il faut entendre : simple ! )
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
26 mai 2010 à 14:07
Elle est adapté c'est sur!
Ca répondra à son besoin, mais autant leur apprendre les bonnes manières de suite :-P
0
CRBHD Messages postés 136 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 5 avril 2011 9
26 mai 2010 à 13:35
Je pense que tu devrais trouver ta réponse là :

http://www.php-astux.info/script-formulaire-contact.php

;)
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
26 mai 2010 à 14:52
Avant tout, ton code html n'est pas très propre :p

Sinon, pour ce qui est de la vérification, certes tu peux le faire en JS pour la vérification des champs vide, mais le traitement doit se faire en php... Et puis, il faut quand même une vérification php des champs au cas où le visiteur désactive son javascript...

Grosso-modo, tu as besoin de quoi ?

Du test d'existence de la variable,
Du test de contenance de la variable,
Du test du contenu et du contrôle de la variable,
Et éventuellement de l'envoie de mail...

Pour cela, sache avant tout (si tu ne le sais pas déjà), que tes champs dans le formulaire se transformeront en $_POST['nom_de_champ']...

Après, pour ce qui est des test :
if(isset($_POST['champ1'], $_POST['champ2'], $_POST['etc...'])){ // ceci test si les champs entre parenthèse existent bien...
     if(!empty($_POST['champ1'], $_POST['champ2'], $_POST['etc...'])){ // ceci test si les champs entre parenthèse ne sont PAS vide (le ! est une négation)
          if($_POST['champ1'] == "ce que tu souhaite" && is_numeric($_POST['champ2']) ...){ // ici des test à la foulé. Le premier sert a savoir si ton champ1 est égale à ce que tu désir (attention, == pour tester l'égalité et non = qui sert a affecter un contenu a une variable), le && te permet de dire ET (tu peut utilisé aussi || qui est égale a OU), le deuxième test vérifie si ton champ2 est de type "numérique" (que des chiffres) utile par exemple pour un numéro de téléphone ou une date... Bref fais autant de test que tu souhaite...
               if(mail('ton_mail', 'sujet_du_mail', 'message')){ // test si le mail que tu as définit ici a put être envoyé
                    echo "tout c'est bien passé";
               }
               else{
                    echo "erreur lors de l'envoie du mail";
               }
          }
          else{
               echo "Une condition n'a pas été respectée";
          }
     }
     else{
          echo "Merci de remplir tout les champs obligatoires !";
     }
}
else{
     echo "Merci de valider le formulaire pour accéder a cette page";
     /// ou alors tu met ici ton formulaire...
}


Voila, pour plus de détail sur les test possible, tu tape sur google "tester ... en php" et voilà ;)

A+
0
Utilisateur anonyme
26 mai 2010 à 15:37
Salut,

Je te conseil le javascript, ça évitera que la page soit rechargé ...
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
26 mai 2010 à 15:38
Certes mais comme je le disait plus haut, il suffit que l'utilisateur le désactive pour foutre la pagaille... Et puis, de ce point la, PHP est bien plus performant et simple pour envoyer des mails ;)

A+
0
Utilisateur anonyme
26 mai 2010 à 15:40
Oui mais tu peux dire ensuite que si des valeurs sont vide, alors le serveur ignore les données ;) La majorité des sites utilise le javascript ...
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
26 mai 2010 à 15:41
Il y'a un moyen de tester en php si le JS est activé non?
Si c'est le cas l'implémentation des deux serait parfaite ;-)
0
biboo_ Messages postés 1249 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 14 mars 2012 106
26 mai 2010 à 15:41
Javascript, c'est côté client, pas côté serveur.
Donc c'est une erreur de dire que "des sites utilisent le javascript".
0
CRBHD Messages postés 136 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 5 avril 2011 9
26 mai 2010 à 15:43
haha biboo_ il joue sur les mots. Mais c'est juste !

:)
0