Bonjour à toutes et tous,

Voici mon problème, j'essaie depuis des heures de parvenir à créer un formulaire et une page de traitement.

Le formulaire est plutôt basique :
1 champ nom
1 champ prénom
1 champ adresse
1 champ code postal
1 champ ville
1 champ téléphone
1 champ mail
4 options pour l'objet du message : option1, option2, option3, option4
1 champ message
1 bouton envoyer

J'ai trouvé en ligne de nombreuses pages avec les codes pour permettre l'envoi des données depuis un formulaire à destination d'une adresse mail mais je n'y arrive pas.

Pourriez vous m'aider s'il vous plaît, j'ai vraiment besoin de réussir à faire ça.

Merci à toutes et tous.

Voici d'où je part.
Je voudrais ne pas faire apparaître mon adresse mail dans le fichier html mais le faire dans un fichier traitement.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Location</title>
<meta name="keywords" content="mes mots clés">
<meta name="description" content="ma description" />
<link href="styles10.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery.jDiaporama.js"></script>
<script type="text/javascript" src="js/script.js"></script>

</head>
<body>
<div id="menu">
		<ul id="lesmenus">
		<li><a href="index.html">Accueil</a></li>
		<li><a href="page1.html">Page 1</a></li>
		<li><a href="page2.html">Page 2</a></li>
		<li><a href="page3.html"><strong>Page 3</strong></a></li>
		<li><a href="page4.html">Page 4</a></li>
		<li><a href="page5"><strong>Page 5</strong></a></li>
		<li><a href="page6.html">Page 6</a></li>
		<li><a href="page7.html"><strong>Page 7</strong></a></li>
		<li><a href="page8.html">Page 8</a></li>
	</ul>
</div>
<!-- end #menu -->
<div id="header">
	<img src="../images/ban1.jpg"><img src="../images/ban2.jpg"><img src="../images/ban3.jpg"><img src="../images/ban4.jpg">
</div>

<div id="menuhor">
		<ul id="lesmenus">
		
		<li><a href="livredor.html">Livre d'Or</a></li>
		<li><a href="liens10.html">Liens</a></li>
		<li><a href="plan10.html">Plan</a></li>
		<li><a href="nsecrire10.html">Nous écrire</a></li>
		</ul>
		
</div> 
<div id="lang">
	<a href="indexeng.htm" ><img border=0 src="../images/icon_english.jpg"><a href="index.htm" ><img border=0 src="../images/icon_french.jpg"></a>
</div>

<!-- end #header -->
<div id="page">
<form method="post" action="traitement.php">
<p class="titre">Vos coordonnées</p>
<fieldset id="coordonnees">
<p id="objet"><label>objet : </label>
<input type="radio" name="objet" value="Mariage" checked="checked"/>Mariage
<input type="radio" name="objet" value="Renseignement" />Renseignement
<input type="radio" name="objet" value="Réservation de promenade" />Réservation de promenade
</p>
<label>Nom : </label>
<input type="text" name="nom" size="30" /><br />
<label>Email : </label>
<input type="text" name="email" size="30" /><br />
<label>Adresse : </label>
<input type="text" name="adresse" size="30" /><br />
<label>Code postal : </label>
<input type="text" name="codepostal" size="30" /><br />
<label>Ville : </label>
<input type="text" name="ville" size="30" /><br />

</fieldset>
<p class="titre">Votre message</p>
<fieldset id="message">
<textarea name="message" rows="5" cols="40"></textarea>
</fieldset>
<p id="bouton">
<input type="submit" value="Envoyer" />
</p>

define('MAIL_DESTINATAIRE',' monadressemail@gmail.com');
define('MAIL_SUJET','Message depuis le site'); 

//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 [langue]HP/' . phpversion()."\r\n";
// préparation du corps du mail
$mail_corps = "Message de : $objet $nom\n";
$mail_corps .= "Adresse : $adresse, $codepostal $ville;
$mail_corps .= $message;
// 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 'Suite à un problème technique, votre message n a pas été envoyé';
}
}
</p>

</form>
<!-- end #page -->
<div style="clear: both;">&nbsp;</div>
<table id="footer">
<tr>
	<td id="c1l1" width="40%"ALIGN="CENTER">
	<div id="footer">
	<p id="telephone">mon téléphone</p>
	<p id="adresse">mon adresse.</p>
	<p id="links"><a href="plan.html">Le plan pour venir.</a></p>
</div>
<!-- end #footer -->
</body>
</html>

Modifié par mg59000 (15 Mar 2014 - 18:39)
Déja le <p class="titre"> me semble obsolète tu peux le remplacer par <legend>Vos coordonées</legend>

ensuite pour ton fichier traitement.php tu peux l'inclure en faisant:
<?php include'traitement.php'; ?>

et pour le traitement en soi tu peux faire


<?php

if(isset($_POST))
{
     extract($_POST); /* on extrait les données du formulaire */
/* puis tu utilise ta fonction mailto en oubliant pas de créer les variables auparavant */

mail($mail,$sujet,$message,$header);
}

else
{
    echo 'Données manquantes.';
}

/* PS: utilise des variables plutot que des constantes ^^ */
?>


Si tu à un doute ou que j'ai mal compris je suis là.
Bonjour Vince,

Merci beaucoup pour ces corrections.

Je suis parvenu à mes fins... enfin.

Un énorme merci,

Une dernière question, comment-pourrais-je obtenir le renvoi vers la page d'accueil du site après l'envoi du mail (et affichage d'un message confirmant que le mail a été envoyé) ?
Hello, Pour la redirection essayer de mettre sa dans le résultat de ta condition

<?php
header('Location: /repertoire/mapage.php');
?>

sa te permettra de rediriger sur ta page d'accueil
Modifié par Denetax (17 Mar 2014 - 11:59)
Bonjour Denetax,

Merci pour cette suggestion.

en modifiant le code de la condition comme proposé j'obtiens ce message d'erreur :
Warning: Cannot modify header information - headers already sent by (output started at /homez.11/rep1/www/traitement.php:3) in /homez.11/rep1/www/traitement.php on line 47

Une idée ?
Merci à tous pour votre aide,

J'ai placé la redirection dans la conditions de mail correct sur la page php de cette façon cela fonctionne.

Bonne journée à toutes et tous,