[PHP] Probleme de formulaire

gloop1
Invité n'ayant pas de compte PHPfrance

14 juin 2007, 12:27

Bonjour voila j'ai créé un formulaire en html auquel j'ai associer un php pour l'envoi. Mon formulaire possede des "chekbox". Est il possible de NE PAS RECEVOIR les cases NONcoché ??

Voila par exemple pvc bois et alu sont 3 cases le client en coche une je veux recevoir que celle la par mail !
MERCI d'avance...
mon
 : 

<?php

 $msg .= "[color=red]PVC fenetre[/color]:\t$pvc_fenetre\n";
 $msg .= "[color=red]BOIS fenetre[/color]:\t$bois_fenetre\n";
 $msg .= "[color=red]ALU fenetre[/color]:\t$alu_fenetre\n";
 $msg .= "Nombre de fenetre:\t$fenetre\n";
 $msg .= "PVC Porte fenetre:\t$pvc_pf\n";
 $msg .= "BOIS porte fenetre:\t$bois_pf\n";
 $msg .= "Alu porte fenetre:\t$alu_pf\n";
 $msg .= "Nombre de porte fenetre:\t$pf\n";
 $msg .= "PVC Volet Battant:\t$pvc_vb\n";
 $msg .= "BOIS Volet Battant:\t$bois_vb\n";
 $msg .= "Alu Volet Battant:\t$alu_vb\n";
 $msg .= "Nombre de volet battant:\t$vb\n";
 $msg .= "PVC Volet Roulant:\t$pvc_vr\n";
 $msg .= "BOIS Volet Roulant:\t$bois_vr\n";
 $msg .= "Alu Volet Roulant:\t$alu_vr\n";
 $msg .= "Nombre de volet Roulant:\t$vr\n";
 $msg .= "PVC Porte:\t$pvc_porte\n";
 $msg .= "BOIS Porte:\t$bois_porte\n";
 $msg .= "Alu Porte:\t$alu_porte\n";
 $msg .= "Nombre Porte:\t$porte\n";
 $msg .= "PVC Portail:\t$pvc_portail\n";
 $msg .= "BOIS Portail:\t$bois_portail\n";
 $msg .= "Alu Portail:\t$alu_portail\n";
 $msg .= "Nombre de Portail:\t$portail\n";

 $msg .= "Civilité:\t$Contact_Civilite\n";
 $msg .= "Prenom:\t$Contact_Prenom\n";
 $msg .= "Nom:\t$Contact_Nom\n";
 $msg .= "Adresse:\t$Contact_Adresse\n";
 $msg .= "Adresse (suite):\t$Contact_Adresse2\n";
 $msg .= "Ville:\t$Contact_Ville\n";
 $msg .= "Code Postal:\t$Contact_CodePostal\n";
 $msg .= "Telephone Portable:\t$Contact_TelephonePortable\n";
 $msg .= "Telephone Personnel:\t$Contact_TelephoneDomicile\n";
 $msg .= "Courrier électronique:\t$Contact_Email\n";
 $msg .= "Projet:\t$Contact_projet\n";

 $msg .= "Technicien :\t$choix_technicien\n";
 $msg .= "Devis par email:\t$choix_email\n";
 $msg .= "Devis par courrier:\t$choix_courrier\n";
 
 
 $recipient = "[email protected]";
 $subject = "Demande de devis";


 $mailheaders .= "Reply-To: $Contact_Email\n\n";

 mail($recipient, $subject, $msg, $mailheaders);

 echo "<HTML><HEAD>";
 echo "<TITLE>Demande de devis envoyée!</TITLE></HEAD><BODY>";
 echo "<H1 align=center>Merci </H1>";
 echo "<P align=center>";
 echo "Votre demande de devis à bien été envoyée !</P>";
 echo "</BODY></HTML>";

?>


gloop1
Invité n'ayant pas de compte PHPfrance

22 juin 2007, 19:27

???? :shock:

Mammouth du PHP | 19672 Messages

22 juin 2007, 19:49

T'es-tu posé la question de pourquoi personne n'a répondu ?

Pour autant qu'on puisse en juger d'après ton code, il faudrait que tu ne rajoutes QUE les lignes quand la variable associée contient une valeur. DOnc pour chaque ligne :
 if(isset($pvc_fenetre))
{
    $msg .= "PVC fenetre:\t". $pvc_fenetre ."\n";
}
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Gloop1
Invité n'ayant pas de compte PHPfrance

24 juin 2007, 16:37

Okai super ca marche pour les checkboxs mais c'est possible avec une case champs ( c'est a dire de ne pas envoyer un blanc ) ?
$msg .= "Nombre de fenetre:\t$fenetre\n";
j'ai essayé :
if(isset($fenetre)) {$msg .= "Nombre de fenetre:\t". $fenetre ."\n";}
Mais cela ne marche pas....

Une idée ??

Mammouth du PHP | 19672 Messages

24 juin 2007, 18:39

pour les zones de saisie, au lieu de isset(), utilise empty().

Une case à cocher ou un bouton radio ne renvoie de valeur que s'il est coché. Une zone de saisie renverra toujour quelque chose, y compris une chaine vide.
Donc :
if(!empty($fenetre)) {$msg .= "Nombre de fenetre:\t". $fenetre ."\n";}
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

gloop1
Invité n'ayant pas de compte PHPfrance

26 juin 2007, 17:42

pour les zones de saisie, au lieu de isset(), utilise empty().

Une case à cocher ou un bouton radio ne renvoie de valeur que s'il est coché. Une zone de saisie renverra toujour quelque chose, y compris une chaine vide.
Donc :
if(!empty($fenetre)) {$msg .= "Nombre de fenetre:\t". $fenetre ."\n";}

Alors si le camp est vide il n'y a pas de moyen de ne pas recevoir ce vide ???

Mammouth du PHP | 693 Messages

26 juin 2007, 17:47

Non, le formulaire envoie toujours les champs text, quelque soit leur valeur. Cependant, tu peux traiter avec ton script le cas des champs vides.