Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'accents lors d'un envoi d'email

    3 septembre 2006 à 3:41:27

    Bonjour à toutes et à tous.

    J'ai un léger problème que j'aimerai résoudre mais pour cela, j'aurai bien besoin de votre aide. Je précise tout de même que je ne suis pas un grand professionnel en php mais je me débrouille comme je le peux. Voici mon problème :

    J'ai créé un script permettant aux visiteurs de m'envoyer un e-mail via un formulaire. Le code fonctionne très bien : je reçois bien les données du formulaire sur mon e-mail personnel mais le problème c'est que tous les accents dans cet e-mail sont remplacés par leur entité de caractère (é - ê - è - etc.). Voici tout de même mon code au cas où.

    Il y à deux pages : contact.php qui contient le formulaire :


    <h3>contact</h3>
    <p>Vous avez une suggestion, un avis ou un problème concernant le site? Vous pouvez me contacter à tout moment via ce formulaire en prenant bien soin d'écrire lisiblement (amateurs de langage sms s'abstenir).</p>
    <form method="post" action="mail.php">
      <p>Votre e-mail : <input type="text" name="votremail" /></p>
      <p><input type="hidden" name="objet" value="Mail envoyé par mon site." /></p>
      <p>Votre message :
      <br /><textarea cols="" rows="" name="message"></textarea></p>
      <p><input type="submit" value="Envoyer" /></p>
    </form>


    Et enfin : mail.php qui contient le script :


    <h3>contact</h3>
      <?php

    $verif="!^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$!";

    $votremail=$_POST["votremail"];
    $from=htmlentities("From: ".$votremail);
    $message=stripslashes(htmlentities($_POST["message"]));

    $destinataire="******@****.***"; /* Mon e-mail est placé ici. */

    $objet=$_POST['objet'];

    if(!preg_match($verif,$votremail))
    {
            echo "<p>Votre e-mail n'est pas valide!</p>";
    }

    elseif (trim($message)=="")
    {
            echo "<p>Votre message est vide!</p>";
    }

    else
    {
            mail($destinataire,$objet,$message,$from);
            echo "<p>Merci. Votre message a été envoyé!</p>";
    }

    ?>


    Y aurait-il une solution à ce problème?


    Merci bien.
    • Partager sur Facebook
    • Partager sur Twitter
      3 septembre 2006 à 4:08:02

      Je viens de tester mais ça ne fonctionne pas. Je viens aussi de remarquer que lorsque j'enlève mon htmlentities de $_POST["message"], le problème ne se pose plus. Cependant je ne peux pas me passer d'htmlentities...
      • Partager sur Facebook
      • Partager sur Twitter
        3 septembre 2006 à 10:14:47

        Citation : salvat0

        Je viens de tester mais ça ne fonctionne pas. Je viens aussi de remarquer que lorsque j'enlève mon htmlentities de $_POST["message"], le problème ne se pose plus. Cependant je ne peux pas me passer d'htmlentities...


        Si, on peut très bien s'en passer du htmlentities() !!!! :-°
        Suffit d'utiliser la fonction adéquate et pas faire du n'importe quoi !
        solu : htmlspecialchars()

        Quand à ton script, faut que tu m'explques pourquoi tu fais les vérifs après les traitements ? ^^
        • Partager sur Facebook
        • Partager sur Twitter

        Problème d'accents lors d'un envoi d'email

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown