formulaire PHP

Bonjour,

Jusqu'à présent je codais mes formulaires en HTML mais on m'a conseillé de les faire en PHP.

Alors voilà 2 jours que je fais des tests et des tests et que je n'arrive pas à faire fonctionner mon formulaire.

Je suis vraiment découragé alors est-ce que quelqu'un aurait la gentillesse de me donner le début du code PHP de mon formulaire :

Code:
<form action="envoi.php" method=post >

<table style="border:0">
<tr>
<td style="text-align:left">Raison_sociale  </td>
<td><input type="text" name="raison_sociale"></td>
</tr>
<tr>
<td style="text-align:left">Nom </td>
<td><input type="text" name="nom"></td>
</tr>
<tr>
<td style="text-align:left">Prénom  </td>
<td><input type="text" name="prénom"></td>
</tr>
<tr>
<td style="text-align:left">Adresse </td>
<td><input type="text" name="adresse"></td>
</tr>
<tr>
<td style="text-align:left">Téléphone : </td>
<td><input type="text" name="téléphone"></td>
</tr>
<tr>
<td style="text-align:left">E-Mail  </td>
<td><input type="text" name="email"></td>
</tr>
<td style="text-align:left">
</table>

Par avance merci.
 
Peut-être le
Code:
method=post
qui doit devenir
Code:
method="post"

Sinon quels sont les problèmes? Et que contient le fichier envoi.php?
 
As-tu créé la page envoie.php pour récupérer ton formulaire ? Vu comme cela il a l'air bon, hormis POST que tu n'as pas mis entre guillemets. Ta page porte bien l'extension PHP ?
 
$contenu="Raison_sociale : ".$_POST['Raison_sociale']."<br/> Nom :".$_POST['nom']."<br/> Prénom : ".$_POST['prenom']." (etc...)";

et tu maile le contenu :-)

dis nous ou tu coinces

ps : post sans guillement ca marche, c est pas beau mais ca marche :-)
 
Merci à tous de vos réponses rapides.

En fait, j'avais 2 fichiers :

1 fichier "contact.html" dans lequel il y a le formulaire
1 fichier "envoi.php" que j'ai détrui tellement j'avais les boules depuis 2 jours.
 
Je veux tout recommencer à zéro avec de bonnes bases parce que je crois que j'ai voulu aller trop vite en prenant des informations sur le web et maintenant je suis complètement perdu!!
 
en parlant de base, sais tu recuperer une variable en php ? sais tu créer une chaine de caracteres constitué de textes et variables php ? et sais tu envoyer un mail en php ?
 
Oui ça , "$contenu="Raison_sociale : ".$_POST['Raison_sociale']."<br/> Nom :".$_POST['nom']."<br/> Prénom : ".$_POST['prenom']." (etc...)"; ce sont des variables.

Chaîne de caractères ?

Non je ne sais récupérer un mail en php!!

Comme je l'ai dit dans mon précédent message j'ai voulu apprendre trop de chose en même temps et maintenant je suis dégoûté du PHP!!
 
Ce code :
Code:
<?php
$contenu="Raison_sociale : ".$_POST['raison_sociale']."<br/> Nom :".$_POST['nom']."<br/> Prénom : ".$_POST['prenom']." (etc...)";
mail( "ton_adresse@example.com", "L'objet du message", $contenu );
?>
te permettra d'envoyer un mail à ton_adresse@example.com.
Il contiendra les infos de ton formulaire.
La doc pour envoyer un mail en php : http://fr.php.net/manual/fr/function.mail.php
le $_POST['raison_sociale'] et les autres sont les valeurs rentrées par l'utilisateur dans ton formulaire.
 
Merci je commence à comprendre car vos explications sont courtes et claires!

Maintenant si je désire rajouter dans mon formulaire des boutons type="radio" pour obtenir ceci :

demande de devis pour

° peinture
° tapisserie
° moquette

et également un textarea pour les commentaires, comment faire pour récupérer les infos en php ?
 
Un petit bout de code...


Code:
<? function sendMail($mFrom,$mTo,$sujet,$body) {
   // l'émetteur
   $tete = "From: ".$mFrom."\n";
   $tete .= "Reply-To: ".$mFrom."\n";
   return mail($mTo,$sujet,$body,$tete);
}

 // SI LE FORM A ETE POSTE
if(!empty($_POST["Email"])) {

   $temp="";
   while (list($truc, $val) = each($HTTP_POST_VARS))
      $temp .= $truc." : ".$val."\n\n";
   $temp = stripslashes($temp);


   $ladresse = "tonadresse";

   
   if(sendmail($_POST["Email"],$ladresse,"Formulaire du site",$temp)) {  ?><?
      echo "Le formulaire a bien &eacute;t&eacute; envoy&eacute; !<br>Merci de nous avoir contact&eacute;";
   } else {
      echo "<font color=red>Impossible d'envoyer le formulaire !</font>";
   }


} else { 

// ON AFFICHE LE FORMULAIRE ?>
              <script language="JavaScript">
      // Teste si le mail a une forme correcte
      function checkmail(email) {
         var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,4}$/
         return (reg.exec(email)!=null)
      }
      // Teste le contenu des champs du form avant submit
      function test(nom,mail) {
         if(nom.value=="") {
            alert("Indiquez votre nom !"); nom.focus(); return false;
         } else if(!checkmail(mail.value)) {
            alert("Email incorrect !"); mail.focus(); return false;
         }
         return true;
      }
      </script>
              <form method="post" onsubmit="return test(this.Nom,this.Email)">
                        <input name="Nom"  size="70">
                        <input name="Email"  size="70">
                        <textarea name="Message" cols=60 rows=10 wrap=virtual></textarea>                   
                  <input type="submit" value="Envoyer le formulaire">
                          <input type="hidden" name="IP" value="<?echo $REMOTE_ADDR?>">
                </form>

<? } ?>
 
Merci magicien, j'ai un peu de mal à comprendre tout ton script mais en tous cas il va me servir.

Les variables $contenu="Raison_sociale : ".$_POST['raison_sociale']."<br/> Nom :".$_POST['nom']."<br/> Prénom : ".$_POST['prenom']." (etc...)"; doivent être insérées au début du script ?
 
Non pas obligatoirement, mais avant le echo qui servira a afficher cette variable, sinon pour plus de clarté je propose cela:
Code:
$raison_sociale = $_POST['raison_sociale'];
$nom = $_POST[['nom'];
$prenom = $_POST['prenom'];

echo 'Votre nom: '.$nom.'<br/>Votre prénom '.$prenom.'<br/>Votre raison sociale'.$raison_sociale;
 
Voilà à quoi ressemble mon script :

Code:
	<?php
	
mail( "mon_adresse@wanadoo.fr", "demande de devis", $contenu ); 

$contenu=
"Raison_sociale : "
.$_POST['Raison_sociale']."
<br/> 
Nom :".$_POST['nom'].
"<br/> 
Prénom : ".$_POST['prenom']." 
"<br/>
Adresse :".$_POST['adresse']." 
"<br/>
Telephone " : $_POST['telephone']."
"<br/>
Email ": $_POST['email']."

echo 'Votre nom: '.$nom.'<br/>Votre prénom '.$prenom.'<br/>Votre raison sociale'.$raison_sociale; 'Votre adresse: '.$adresse.'<br/>;'Votre telephone: '.$telephone.'<br/>;'Votre email: '.$email.'<br/>


<? function sendMail($mFrom,$mTo,$sujet,$body) { 
   // l'émetteur 
   $tete = "From: ".$mFrom."\n"; 
   $tete .= "Reply-To: ".$mFrom."\n"; 
   return mail($mTo,$sujet,$body,$tete); 
} 

 // SI LE FORM A ETE POSTE 
if(!empty($_POST["Email"])) { 

   $temp=""; 
   while (list($truc, $val) = each($HTTP_POST_VARS)) 
      $temp .= $truc." : ".$val."\n\n"; 
   $temp = stripslashes($temp); 


   $ladresse = "mon_adresse@wanadoo.fr"; 

    
   if(@sendmail($_POST["Email"],$ladresse,"Formulaire du site",$temp)) {  ?><? 
      echo "Le formulaire a bien &eacute;t&eacute; envoy&eacute; !<br>Merci de nous avoir contact&eacute;"; 
   } else { 
      echo "<font color=red>Impossible d'envoyer le formulaire !</font>"; 
   } 


} else { 

// ON AFFICHE LE FORMULAIRE ?> 
              <script language="JavaScript"> 
      // Teste si le mail a une forme correcte 
      function checkmail(email) { 
         var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,4}$/ 
         return (reg.exec(email)!=null) 
      } 
      // Teste le contenu des champs du form avant submit 
      function test(nom,mail) { 
         if(nom.value=="") { 
            alert("Indiquez votre nom !"); nom.focus(); return false; 
         } else if(!checkmail(mail.value)) { 
            alert("Email incorrect !"); mail.focus(); return false; 
         } 
         return true; 
      } 
      </script> 
              <form method="post" onsubmit="return test(this.Nom,this.Email)"> 
                        <input name="Nom"  size="70"> 
                        <input name="Email"  size="70"> 
                        <textarea name="Message" cols=60 rows=10 wrap=virtual></textarea>                    
                  <input type="submit" value="Envoyer le formulaire"> 
                          <input type="hidden" name="IP" value="<?echo $REMOTE_ADDR?>&quot;&gt; 
                </form> 

<? } ?>


Maintenant si je désire rajouter dans mon formulaire des boutons type="radio" pour obtenir ceci :

demande de devis pour

° peinture
° tapisserie
° moquette

et également un textarea pour les commentaires, comment faire pour récupérer les infos en php ?


Par avance merci.
 
Hum... ca ne marchera pas...
L'envoi du mail doit être dans la condition du test si le champ E-mail a été renseigné...
Le code est mélangé et les fonctions ne sont pas appelées correctement.
J'ai mis un code tout fait que tu glisse dans une page et tu ne change que le formulaire.
Dans mon code, le champ d'e-mail est testé en javascript (ne pas changer le nom du champ dans le formulaire.) les autres sont modifiables.

Bon courage.
 
Ceci devrait marcher à coller tel quel dans ta page :

Code:
<? function sendMail($mFrom,$mTo,$sujet,$body) { 
   // l'émetteur 
   $tete = "From: ".$mFrom."\n"; 
   $tete .= "Reply-To: ".$mFrom."\n"; 
   return mail($mTo,$sujet,$body,$tete); 
} 

 // SI LE FORM A ETE POSTE 
if(!empty($_POST["Email"])) { 

   $temp=""; 
   while (list($truc, $val) = each($HTTP_POST_VARS)) 
      $temp .= $truc." : ".$val."\n\n"; 
   $temp = stripslashes($temp); 


   $ladresse = "tonadresse"; 

    
   if(sendmail($_POST["Email"],$ladresse,"Formulaire du site",$temp)) {  ?><? 
      echo "Le formulaire a bien &eacute;t&eacute; envoy&eacute; !<br>Merci de nous avoir contact&eacute;"; 
   } else { 
      echo "<font color=red>Impossible d'envoyer le formulaire !</font>"; 
   } 


} else { 

// ON AFFICHE LE FORMULAIRE ?> 
              <script language="JavaScript"> 
      // Teste si le mail a une forme correcte 
      function checkmail(email) { 
         var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,4}$/ 
         return (reg.exec(email)!=null) 
      } 
      // Teste le contenu des champs du form avant submit 
      function test(nom,mail) { 
         if(nom.value=="") { 
            alert("Indiquez votre nom !"); nom.focus(); return false; 
         } else if(!checkmail(mail.value)) { 
            alert("Email incorrect !"); mail.focus(); return false; 
         } 
         return true; 
      } 
      </script> 
              <form method="post" onsubmit="return test(this.Nom,this.Email)"> 
 <input type="submit" value="Envoyer le formulaire"> 
<table style="border:0"> 
<tr> 
<td style="text-align:left">Raison_sociale  </td> 
<td><input type="text" name="raison_sociale"></td> 
</tr> 
<tr> 
<td style="text-align:left">Nom </td> 
<td><input type="text" name="nom"></td> 
</tr> 
<tr> 
<td style="text-align:left">Prénom  </td> 
<td><input type="text" name="prénom"></td> 
</tr> 
<tr> 
<td style="text-align:left">Adresse </td> 
<td><input type="text" name="adresse"></td> 
</tr> 
<tr> 
<td style="text-align:left">Téléphone : </td> 
<td><input type="text" name="téléphone"></td> 
</tr> 
<tr> 
<td style="text-align:left">E-Mail  </td> 
<td><input type="text" name="Email"></td> 
</tr> 
<td style="text-align:left"> 
</table> 
</form> 

<? } ?>
 
pour un choix tu peux utiliser :
Code:
<input type="checkbox" name="choice[]" value="peinture" checked="checked" /> peinture
<input type="checkbox" name="choice[]" value="tapisserie" /> tapisserie
<input type="checkbox" name="choice[]" value="moquette" /> moquette
pour choice tu peux mettre choicedevis par exemple comme ça si tu à plusieurs autre choix à proposer à tes visiteurs tu peux en faire plusieurs (choicedevis, choiceinfo)

pour les radios simple à multi choix
Code:
<input type="radio" name="group1" value="1">
<input type="radio" name="group1" value="2" checked>
<input type="radio" name="group1" value="3">

pour les commentaires
Code:
commentaire :<br />
<textarea rows="7" name="commentaires" cols="24"></textarea><br />
pour les récupérer c'est pareil que pour le reste.
 
Merci de vos réponses.

Donc là si je saisis le script dans la même page que mon formulaire il faut que je change l'extension de ma page "contact.html" en "contact.php" ?
 
si je fais simplement comme ça vous pensez que ça va marcher ?

Code:
	<?php
	
mail( "mon_adresse@wanadoo.fr", "demande de devis", $contenu ); 

$contenu=
"Raison_sociale : "
.$_POST['Raison_sociale']."
<br/> 
Nom :".$_POST['nom'].
"<br/> 
Prénom : ".$_POST['prenom']." 
"<br/>
Adresse :".$_POST['adresse']." 
"<br/>
Telephone " : $_POST['telephone']."
"<br/>
Email ": $_POST['email']."
"<br/>
Peinture ": $_POST['peinture']."
"<br/>
Tapisserie ": $_POST['tapisserie']."
"<br/>
Moquette ": $_POST['moquette']."
"<br/>
Commentaires ": $_POST['commentaires']."

echo 'Votre nom: '.$nom.'<br/>Votre prénom '.$prenom.'<br/>Votre raison sociale'.$raison_sociale; 'Votre adresse: '.$adresse.'<br/>;'Votre telephone: '.$telephone.'<br/>;'Votre email: '.$email.'<br/>;'Peinture: '.$peinture.'<br/>;'Tapisserie: '.$tapisserie.'<br/>;'Moquette: '.$moquette.'<br/>'Commentaires: '.$commentaires.'<br/>



 ?>

Comme ça je conserve mon fichier "contact.html" dans lequel je mettrais en haut du formulaire action: "envoi.php"
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut