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 :

Lecture des messages reçus et encodage


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 115
    Points : 84
    Points
    84
    Par défaut Lecture des messages reçus et encodage
    Bonjour,

    Mon formulaire de contact fonctionne bien.
    Par contre certains caractères s'affichent mal.
    Par exemple le "é" s'affiche: "é"

    Voici le html:
    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
    				<form class="cmxform" id="commentForm" method="post" action="traitement-contact.php">
    					<fieldset>
    						<p>
    							<label for="nom">Nom et prénom</label>
    							<input id="nom" name="nom" class="required"  />
    						</p>
    						<p>
    							<label for="email">E-Mail </label>
    							<input id="email" name="email" class="required email" />
    						</p>
    						<p>
    							<label for="sujet">Sujet</label>
    							<input id="sujet" name="sujet" class="required" value="" />
    						</p>
    						<p>
    							<label for="msg">Message</label>
    							<textarea id="msg" name="msg" class="required" rows="5" cols="60"></textarea>
    						</p>
    						<p style="text-align:left;">
    							<span style="font-size:10px;font-style:italic;margin-right:150px;">Tous les champs sont obligatoires.</span>
    							<input  class="submit" type="submit" value="Envoyer"/>
    						</p>
    					</fieldset>
    				</form>
    et voici le code php lorsque la page traitement-contact.php est appelé:
    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
    <?php
    	// récupération des données envoyées par le formulaire de contact
    	$nom = htmlentities($_POST['nom'], ENT_QUOTES);
    	$email = htmlentities($_POST['email'], ENT_QUOTES);
    	$sujet = htmlentities($_POST['sujet'], ENT_QUOTES);
    	$msg = htmlentities($_POST['msg'], ENT_QUOTES);
     
    	// suppression des slashes
    	$nom =stripslashes ($nom);
    	$email =stripslashes ($email);
    	$sujet=stripslashes ($sujet);
    	$msg=stripslashes ($msg);
     
    	/*  verification des champs obligatoires */
    	$blnValide = TRUE;
    	if (empty($nom)){
    		$blnValide = FALSE;
    	}
    	if (empty($email)){
    		$blnValide = FALSE;
    	}
    	if (empty($sujet)){
    		$blnValide = FALSE;
    	}
    	if (empty($msg)){
    		$blnValide = FALSE;
    	}
    	$message = 'Ce mail a ete envoye depuis votre site par '.$nom."\r\n".'Email : '.$email."\r\n".'Sujet :'.$sujet."\r\n".'Message :'.$msg."\r\n";
    ?>
    <!-- envoi du mail -->
    <?php 
     
    	$entetes ="From: " .$email."\n";
    	$to='contact@monsite.fr';
     
    	if ($blnValide){
    		mail($to, $sujet, $message, $entetes);
    	}else{
    		echo "Echec de l'envoi";
    	}
    ?>
    Un premier contrôle de validité est effectué avec JQuery.

    L'encodage de la page est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    J'ai essayé avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    mais ca n'a rien changé.

    Si vous connaissez une solution...

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Il est question d'affichage mais il n'est pas indiqué de quoi il s'agit précisément ? De mail ? Quel est lien entre le mail et la balise meta ?

    Citation Envoyé par RootsRagga Voir le message
    Par contre certains caractères s'affichent mal.
    Par exemple le "é" s'affiche: "&eacute;"
    C'est normal si vous remplacez ces caractères par leurs entités HTML via htmlentities :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	$nom = htmlentities($_POST['nom'], ENT_QUOTES);
    	$email = htmlentities($_POST['email'], ENT_QUOTES);
    	$sujet = htmlentities($_POST['sujet'], ENT_QUOTES);
    	$msg = htmlentities($_POST['msg'], ENT_QUOTES);
    D'autant plus gênant si le mail est envoyé au format texte et non au format HTML où ces entités ont seulement un sens.

    Deux solutions, en supposant du début à la fin les encodages cohérents (vraisemblablement iso-8859-1 ici) :
    • Conserver htmlentities et envoyer le mail au format HTML
    • Supprimer htmlentities pour l'envoyer au format texte

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 115
    Points : 84
    Points
    84
    Par défaut
    Merci pour votre réponse,

    Il est question d'affichage mais il n'est pas indiqué de quoi il s'agit précisément ? De mail ? Quel est lien entre le mail et la balise meta ?
    Il s'agit effectivement de l'affichage d"un mail.
    Il n'y a effectivement pas de lien entre le mail et la balise meta, je me suis dis on ne s'est jamais...

    Merci pour l'explication et le lien, j'ai pu trouver ma solution.

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

Discussions similaires

  1. [JMS] Lecture des messages d'un topic
    Par manu11 dans le forum Java EE
    Réponses: 1
    Dernier message: 25/01/2010, 17h21
  2. Police des messages reçus
    Par cacou111 dans le forum Outlook
    Réponses: 4
    Dernier message: 22/07/2008, 13h17
  3. Connexion avortée - Erreur de lecture des paquets reçus
    Par Zacland dans le forum Requêtes
    Réponses: 3
    Dernier message: 02/01/2008, 17h30
  4. [phpBB] Lecture des Messages Privés par l'administrateur
    Par Bonhomme dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 16/11/2007, 16h57
  5. affichage des messages reçus
    Par castelm dans le forum Outlook
    Réponses: 2
    Dernier message: 08/03/2007, 20h13

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