8791 sujets

Développement web côté serveur, CMS

Bonjour,
je viens demander un peu d'aide SVP, j'ai un problème d'accent dans mes réception d'Email. Je suis arrivé à résoudre une partie de ce problème, mais il reste un endroit dans ma réception d'Email ou je n'arrive pas à résoudre le problème (j'ai joint une photo).
Voici le code:

<?php
header('Content-Type: text/html; charset=UTF-8');
if(isset($_POST['envoyer']))                             // Lorsque l'utilisateur clique sur envoyer
{
        
    if(!empty($_POST['nom']) AND !empty($_POST['mail']) AND !empty($_POST['message']))  // Si tout est bien remplit (empty = vide, isset = variable existe)...
    {
        extract($_POST);                                                       // Extraire si tout est bien remplit. Revien au meme que écrire: $message = $_POST['message'];... 
        if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$mail))  // Vérifier si e-mail est valide (1)
        {
            $nom = htmlspecialchars(stripslashes($nom));              // Protège les variables
            $mail = htmlspecialchars(addslashes($mail));
            $site = htmlspecialchars(addslashes($site));
            $message = htmlspecialchars(stripslashes($message));
            $objet = htmlspecialchars(addslashes($objet));
            $destinataire = "seb@live.fr";
            $sujet = utf8_decode('Formulaire de contact de Créer Web Site.com - Objet : ' . $objet . '');   // utf8_decode pour prob. accent. + ligne dessous :
            $sujet = mb_encode_mimeheader($sujet,"UTF-8");                         // Résoudre quelques problèmes accents dans sujet de réception mail
            $entete = utf8_decode('FROM: '.$nom.' <'.$mail.'>'."\r\n");                               // D'ou vien le message: expéditeur.
            $entete .= 'Content-Type: text/html; charset="utf-8"'."\n";                      // ".=" c'est comme une concaténation. pour que entete est ancienne + nouvelle valeur
            $entete .= 'Content-Transfer-Encoding: 8bit';
            $message = 'Nom : '.$nom.' '."<br \>".' Site web : '.$site.' '."<br \>".' Message : '.$message.' ';    // "\n" : Pour retour à la ligne

            if(mail($destinataire, $sujet, $message, $entete))          // si mail vaut true (si mail a été envoyé)
            {                                                           // ici que le mail est envoyé
                unset($_POST, $message, $nom, $mail, $site, $objet);     // Ensuite on détruit les variables pour éviter d'avoir des petits bugs
                $info = "Votre message a été envoyé, merci";                   // fonction header pour rediriger. 
            }
            else
            {                                                          // sa veut dire que le mail n'est pas parti
                unset($message, $nom, $mail, $site, $objet);
                $erreur = "Une erreur est survenue lors de l'envoi du message";
            }
            
        }
        else
        {
            $erreur = "Adresse Email invalide, veuillez recommencer. Merci.";
        }
    }
    else
    {
        $erreur = "Veuillez remplir tous les champs obligatoires *";
    }
      
}
?>


Et voici la photo ou on voit l'endroit où j'ai le problème d'accent :
upload/39440-Sanstitre-.png

Merci beaucoup
Modifié par stephweb (21 Sep 2015 - 23:45)
Bonjour,

Quand tu edites ta page dans notepad ++ est-ce que l'encodage de ta page est bien en UTF-8 sans BOM ?