Aller au contenu

Formulaire php: quelque chose qui cloche


silv1

Sujets conseillés

Bonjour!

Voilà, en fait je viens de suivre un tutorial sur le net pour apprendre à créer un formulaire dont les données sont ensuite envoyées sur une adresse mail.

J'ai dont 2 script: le premier est inclu dans ma page html tandis que le deuxième est sur un fichier php

Lorsque je reprend textuellement le script proposé en exemple dans ce tutorial, tout marche nickel. Je reçois bel et bien un mail avec les données des différents champs du formulaire.

Mais lorsque j'ai voulu le personnaliser les choses ont commencer à se gâter...

Je recois désormais un mail mais seul quelques données du formulaires appraissent mais pas l'ensemble. J'ai beau modifier le script dans tous les sens c'est toujours la même chose. A chaque fois il manque des données dans le mail.

Voici les 2 codes:

Tout d'abord le code du formulaire:

<form method="post" action="traitement2.php">

<p class="titre">Coordonnées</p>

<fieldset id="coordonnees" style="border: 1px solid #FFFFFF">
<legend> </legend>
<p id="civilite"><label>Civilité</label><span style="font-weight: 600; color: red">*</span><label>
: </label>
<input type="radio" name="civilite" value="M." />M.
<input type="radio" name="civilite" value="Mlle" />Mlle
<input type="radio" name="civilite" value="Mme" />Mme
</p>
<p id="civilite"> </p>
<label>Nom</label><span style="font-weight: 600; color: red">*</span><label> : </label>
<input type="text" name="nom" size="30" /><p><br />
<label>Adresse</label><span style="font-weight: 600; color: red">*</span><label>
: </label>
<input type="text" name="adresse" size="30" /></p>
<p><br />
<label>Code postal</label><span style="font-weight: 600; color: red">*</span><label>
: </label>
<input type="text" name="codepostal" size="30" /></p>
<p><br />
<label>Ville : </label>
<input type="text" name="ville" size="30" /></p>
<p><br />
<label>Pays : </label>
<select name="pays">
<option value="france">France</option>
<option value="belgique">Belgique</option>
<option value="suisse">Suisse</option>
</select> </p>
<p> </p>
<label>Adresse e-mail</label><span style="font-weight: 600; color: red">*</span><label>
: </label>
<input type="text" name="adressemail" size="30" /><p> </p>
</p>
<p id="habitation"><label>Type d'habitation</label><span style="font-weight: 600; color: red">*</span><label>
: </label>
<input type="radio" name="habitation" value="Maison" />Maison
<input type="radio" name="habitation" value="Appartement" />Appartement
<input type="radio" name="habitation" value="Entreprise" />Entreprise
</p>
<p id="habitation"> </p>
<p id="milieu"><label>Milieu</label><span style="font-weight: 600; color: red">*</span><label>
: </label>
<input type="radio" name="milieu" value="Urbain" />Urbain
<input type="radio" name="milieu" value="Semi-urbain" />Semi-urbain
<input type="radio" name="milieu" value="Rural" />Rural
</p>
<p id="milieu"> </p>
<label>Consommation annuelle (en KWH)</label><span style="font-weight: 600; color: red">*</span><label> : </label>
<input type="text" name="consommation" size="30" /><p><br />
<p id="milieu"> </p>
<p> </p>
<p id="interets"><label>Centres d'intérêts : </label>
<input type="checkbox" name="interets[]" value="sport" />Sport
<input type="checkbox" name="interets[]" value="cinema" />Cinéma</p>
<p id="interets"><br />
<input type="checkbox" name="interets[]" value="internet" />Internet
<input type="checkbox" name="interets[]" value="voyages" />Voyages
</p>
</fieldset>

<p class="titre">Message</p>

<fieldset id="message" style="border: 1px solid #FFFFFF">
<legend> </legend>
<textarea name="comments" rows="5" cols="40"></textarea>
</fieldset>

<p id="buttons">
<input type="submit" value="Envoyer" />
<input type="reset" value="Recommencer" />
</p>

</form>

Et voici le fichier php que j'ai nomé "traitement2"

<?php
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
define('MAIL_DESTINATAIRE','monadresse_AT_gmail.com');
define('MAIL_SUJET','Message du formulaire du site *** ***');

// vérification des champs
if (empty($_POST['civilite']))
$message .= "Votre civilité<br/>";
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty($_POST['adresse']))
$message .= "Votre adresse<br/>";
if (empty($_POST['codepostal']))
$message .= "Votre code postal<br/>";
if (empty($_POST['ville']))
$message .= "Votre ville<br/>";
if (empty($_POST['adressemail']))
$message .= "Votre adresse mail<br/>";
if (empty($_POST['habitation']))
$message .= "Votre habitation<br/>";
if (empty($_POST['milieu']))
$message .= "Votre milieu<br/>";
if (empty($_POST['comments']))
$message .= "Votre message<br/>";


// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {

echo $message;

// sinon c'est ok
} else {

foreach($_POST as $index => $valeur) {
$$index = stripslashes(trim($valeur));
}

$interets = $_POST['interets'];
$sqlinterets = '';
for ($i=0; $i<count($interets); $i++)
{
$sqlinterets .= $interets[$i];
$sqlinterets .= ', ';
}


//Préparation de l'entête du mail:
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "
."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";

// préparation du corps du mail


$mail_corps = "Message de : $civilite $nom\n";
$mail_corps .= "Adresse : $adresse, $codepostal $ville, $pays\n";
$mail_corps .= "Adresse e-mail : $adressemail\n";
$mail_corps = "Type d'habitation : $habitation\n";
$mail_corps = "Milieu : $milieu\n";
$mail_corps .= "Concommation annuelle (en KWH) : $consommation\n";
$mail_corps .= "Ses centres d'intérêts : $sqlinterets\n\n\n";
$mail_corps .= $comments;


// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {

//Le mail est bien expédié
echo $msg_ok;
} else {

//Le mail n'a pas été expédié
echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';
}

}
?>

Dans le mail que je reçois, seul le milieu, la consommation annuelle et les centres d'intéret apparaissent :thumbsdown:

Est ce que par quelqun pourrait me donner un coup de main en regardant ce qui ne va pas?

Je vous remerci d'avance pour votre aide!

Modifié par Dan
Lien vers le commentaire
Partager sur d’autres sites

Salut,

dans ta page de traitement , il manque "." devant =:

$mail_corps = "Message de : $civilite $nom\n";

$mail_corps .= "Adresse : $adresse, $codepostal $ville, $pays\n";

$mail_corps .= "Adresse e-mail : $adressemail\n";

$mail_corps = "Type d'habitation : $habitation\n"; <===== ici

$mail_corps = "Milieu : $milieu\n"; <===== ici

$mail_corps .= "Concommation annuelle (en KWH) : $consommation\n";

$mail_corps .= "Ses centres d'intérêts : $sqlinterets\n\n\n";

$mail_corps .= $comments;

Lien vers le commentaire
Partager sur d’autres sites

Voilà maintenant ça marche! Juste une petite question... Comment se fait t-il qu'on ne met pas de ".=" devant $mail_corps = "Message de : $civilite $nom\n";

Encore merci celtic!

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...