Pour ma page perso, j'essaie de mettre en place un formulaire de contact simple (nom, mail, sujet et message). Mais voilà, si l'envoie du message se passe bien, le nom et le mail du destinataire ainsi que le sujet ne s'affichent pas correctement dans ma boite mail.
Exemple de texte rentré dans le formulaire :
Nom : Père Noël
Mail : [email protected]
Sujet : Pommes & Scoubidous
Message : Une esperluette & entre \"guillemets doubles\" ou \'guillemets simples\'. attention aux chevrons < >.
Je sais, c'est bidon mais bon, je teste
Maintenant, voilà ce qui est affiché dans ma boite mail (Yahoo! pour ne pas la citer)
From : "P&[email protected]" <P&[email protected]>
Subject : Pommes & Scoubidous
Message : Une esperluette & entre \"guillemets doubles\" ou \'guillemets simples\'. attention aux chevrons < >.
D'où peut venir le problème ? Sachant que :
Je suis codé en utf-8 (<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />)
L'encodage de Php-MySql est sur utf-8 unicode ci (ainsi que l'interclassement)
Le code html qui crée le formulaire est le suivant
<p class="vert">Par E-mail :</p>
<form method="post" action="mail.php">
<p>
<label for="nom">Nom Prénom</label><br/>
<input type="text" id="nom" name="nom" tabindex="1"/><br/><br/>
<label for="email">E-mail</label><br/>
<input type="text" id="email" name="email" tabindex="2"/><br/><br/>
<label for="sujet">Sujet</label><br/>
<input type="text" id="sujet" name="sujet" tabindex="3"/><br/><br/>
<label for="requete">Message</label><br/>
<textarea id="message" name="message" rows="4" cols="40" tabindex="4"></textarea><br/>
</p>
<p>
<input type="submit" value="Envoyer" tabindex="5"/>
<input type="reset" value="Annuler" tabindex="6"/>
</p>
</form>
Le script qui envoie le mail est le suivant
<?php
// récupération des valeurs rentrées dans les champs du formulaire
$nom=htmlentities($_POST['nom']);
$email=htmlentities($_POST['email']);
$sujet=htmlentities($_POST['sujet']);
$message=htmlentities($_POST['message']);
// coupe le message en lignes de 70 caractères max
$message=wordwrap($message, 70);
$destinataire='[email protected]';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
$headers .= 'From: '.$nom.' <'. $email.' >' . "\r\n";
mail($destinataire, $sujet, $message, $headers);
unset($nom, $email, $sujet, $message, $headers) ;
header('Location: merci.php');
?>
Merci pour votre aide parce que là, je sèche...