Aller au contenu

Formulaire php: quelque chose qui cloche


Sujets conseillés

Posté (modifié)

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
Posté

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;

Posté

Ah d'accord!Merci beaucoup celtic! :thumbsup: Je vais tout de suite faire les modifs pour voir ci ça marche maintenant!

Posté

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!

Posté

Tout simplement parce que la formulation .= signifie "ajouter à la variable existante", alors que le simple "=" signifie "créer une variable ou écraser le contenu de la variable".

Veuillez vous connecter pour commenter

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



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