IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème d'affichage dans un mail


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut Problème d'affichage dans un mail
    Bonjour,

    Je viens d'écrire une page contact pour mon site, le mail fonctionne parfaitement ou presque.. j'ai un problème d'affichage à, é, ç, etc....

    Je ne vois pas trop d'ou vient le problème Je suis bien-sur en utf-8 sur toutes mes pages..

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <?php
    require_once 'inc/functions.php';
    require_once 'inc/db.php';
     
    if(!empty($_POST)){
     
        if(empty($_POST['nom_prenom'])){
            $errors['nom_prenom'] = "Veuillez renseigner votre nom et prénom.";
        }
     
        if(empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
            $errors['email'] = "Votre email n'est pas valide.";
        }
     
        if(empty($_POST['message'])){
            $errors['message'] = "Votre message est trop court.";
        }
     
        if(empty($errors)){
     
            $nom_prenom = htmlspecialchars($_POST['nom_prenom']);
            $message = htmlspecialchars($_POST['message']);
            // Dans le cas où nos lignes comportent plus de 70 caractères, nous les coupons en utilisant wordwrap()
            $message = wordwrap($message, 70, "\r\n");
     
            // En-têtes
            $headers  = 'MIME-Version: 1.0' . "\r\n";
            $headers .= 'Content-type: text/plain; charset=iso-8859-1' . "\r\n";
            $headers .= 'From: ' . $_POST['email'] . "\r\n";
            $headers .= 'Reply-To: ' . $_POST['email'] . "\r\n";
            $headers .= 'X-Mailer: PHP/' . phpversion();
     
            $email_admin = 'contact@siteweb.fr';
     
            mail($email_admin, 'SiteWeb Contact', 'Nom et prénom : ' . $nom_prenom . "\r\n" . 
            'Message : ' . $message . "\r\n" . 'Adresse IP : ' . $_SERVER['REMOTE_ADDR'], $headers);
            $_SESSION['flash']['success'] = 'Votre message a bien été envoyé.';
            header('Location: contact.php');
            exit();
        }
     
    }
     
    require_once 'inc/header.php';
    ?>
     
    <h1>Contact</h1>
     
    <?php if(!empty($errors)): ?>
        <div class="alert alert-danger">
            <p>Vous n'avez pas rempli le formulaire correctement</p>
            <ul>
                <?php foreach($errors as $error): ?>
                    <li><?= $error; ?></li>
                <?php endforeach; ?>
            </ul>
        </div>
    <?php endif; ?>
     
        <form action="" method="POST">
            <div class="form-group">
                <label for="nom_prenom">Nom et prénom</label>
                <input type="text" name="nom_prenom" class="form-control" id="nom_prenom" placeholder="Nom et prénom">
            </div>
            <div class="form-group">
                <label for="email">Adresse email</label>
                <input type="text" name="email" class="form-control" id="email" placeholder="Adresse email">
            </div>
            <div class="form-group">
                <label for="message">Votre message</label>
                <textarea name="message" class="form-control" id="message" rows="6"></textarea>
            </div>
            <button type="submit" class="btn btn-primary">Envoyer</button>
        </form>
     
    <?php require 'inc/footer.php'; ?>

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            $headers .= 'Content-type: text/plain; charset=iso-8859-1' . "\r\n";
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    ? Pas compris..

    iso-8859-1 C'est pour la compatibilité, il y a des serveurs qui ne tolèrent pas le utf-8..
    D'ailleurs là il s'agit d'un mail txt bien-sûr, mais en cas de mail html, php suggère bien le iso-8859-1 !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 383
    Points
    383
    Par défaut
    Si les pages sont en utf8, les valeurs de $_POST sont aussi en utf8.

    Et du coup tu mélange utf8 et iso8859. utf8_decode peut être avant le wordwrap() ?

  5. #5
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Citation Envoyé par bndd24 Voir le message
    iso-8859-1 C'est pour la compatibilité, il y a des serveurs qui ne tolèrent pas le utf-8..
    Tu m’en apprends une. Si vraiment tu ne veux pas de soucis, convertis tous tes caractères spéciaux en entités HTML avec htmlentities.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/04/2006, 22h06
  2. Problème d'affichage dans un tableau
    Par claralavraie dans le forum ASP
    Réponses: 13
    Dernier message: 21/12/2005, 15h45
  3. [JSTL] Problème d'affichage dans un <c:forEach>
    Par zwck dans le forum Taglibs
    Réponses: 6
    Dernier message: 05/11/2005, 21h35
  4. Problème d'affichage dans un composant TScrollBox
    Par erossi dans le forum Composants VCL
    Réponses: 3
    Dernier message: 14/09/2005, 11h29
  5. [débutant]problèmes d'affichage dans un tableau
    Par Hastur dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 16/08/2005, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo