Uft8 decode fonctionne quand il veut

Résolu
sniper749 Messages postés 26 Statut Membre -  
xamurai Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai crée un formulaire en flash avec une page php pour l'envoie de mail.

Lorsque j'insère des "é" dans mon formulaire, lors de l'ouverture de mon mail quelque fois tous les é saisie s'affiche correctement ou sinon il m'affiche des "?" ou des "?"

sans avoir changé quoi que ce soit dans mon code.

je n'y comprend plus rien si quelqu'un a une solution sa m'arrangerais car la ......

si vous souhaité voir ma page php n'hesitez pas.

merci de vos réponse

11 réponses

  1. xamurai Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   15
     
    peut tu montrer la page?
    0
  2. sniper749 Messages postés 26 Statut Membre
     
    Voila merci de ton aide si ta une solution sa serait idéal car la j'ai essayé plusieurs méthode mais rien a faire.

    <?php
    #
    $MailTo="s_sniper74@hotmail.com";
    
    # fonction permettant l'encodage des caract res accentuZs
    function getFormatedText($texte){ 
    $texte =utf8_decode($texte); 
    $texte =eregi_replace( "\r", "\n", $texte); 
    $texte =stripcslashes($texte); 
    return $texte;
    }
    # fin de la fonction
    
    $lastname = getFormatedText($_POST['lastname']); 
    $firstname = getFormatedText($_POST['firstname']);
    $mailFrom = getFormatedText($_POST['mailFrom']);
    $phone = getFormatedText($_POST['phone']);
    $fax = getFormatedText($_POST['fax']);
    $adresse = getFormatedText($_POST['adresse']);
    $cp = getFormatedText($_POST['cp']);
    $ville = getFormatedText($_POST['ville']);
    $pays = getFormatedText($_POST['pays']);
    $subject = getFormatedText($_POST['subject']);
    $body = getFormatedText($_POST['body']);
    
    #
    # Formating Date   ############################################################
    # ("m.d.Y"); pour passer au format europZen ("d.m.Y");
    # Pour rajouter  les heures de dZcalage horaire ,ajouter "time()+3600*(2+date("I")));" +2 heure d'ZtZ RZunion
    $nowDay=date("d.m.Y");
    $nowClock=date("H:i:s",time()+3600*(date("I")));
    #
    # Formating Body content ######################################################
    #
    $FormContent="
    Les informations suivantes ont ete recues le $nowDay a $nowClock:\n\n
    ----------------------------------------------------------------------------\n
    Type: $type\n
    Prenom: $firstname\n
    Nom: $lastname\n
    E-mail: $mailFrom\n
    ----------------------------------------------------------------------------\n
    Numero de telephone: $phone\n
    ----------------------------------------------------------------------------\n
    Fax: $fax\n
    ----------------------------------------------------------------------------\n
    Adresse: $adresse\n
    ----------------------------------------------------------------------------\n
    Code postale: $cp\n
    ----------------------------------------------------------------------------\n
    Ville: $ville\n
    ----------------------------------------------------------------------------\n
    Pays: $pays\n
    ----------------------------------------------------------------------------\n
    Sujet: $subject\n
    ----------------------------------------------------------------------------\n
    Message: $body\n
    ----------------------------------------------------------------------------\n
    ".urlencode(utf8_decode($FormContent));
    #
    #
    mail($MailTo, "$subject (de $firstname $lastname)", $FormContent, "From: $mailFrom");
    #
    #
    # Autoresponder   #############################################################
    #
    #
           $filename = "answer.txt";
           $fd = fopen( $filename, "r" );
           $contents = fread( $fd, filesize( $filename ) );
           fclose( $fd );
           mail( "$mailFrom", "Merci de votre envoi - votreSite.com", "$contents\n\n",
                 "From:votreMail@votreFai.com\n" );
    #
    #
    # Flashsignal Variable   ######################################################
    #
    $signal=1;
    echo "signal=$signal";
    #
    ###############################################################################
    ?>
    0
  3. xamurai Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   15
     
    essaye ceci voir

    
    function decodeAllChar($text)
      {
        return html_entity_decode($text,ENT_QUOTES,'UTF-8');
      }
      function encodeAllChar($text)
    	{
        return htmlentities($text,ENT_QUOTES,'UTF-8'); 
      }
    
    0
  4. xamurai Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   15
     
    j'utilise parfois cette fonction egalement

    function correctString($t)
      {
         $t = str_replace(array(chr(128),chr(252),chr(195)."".chr(195),chr(233),chr(228),chr(235)), array("€","ü","é","é","ä","e") , $t);
         return $t;
      }
    
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sniper749 Messages postés 26 Statut Membre
     
    La
    function decodeAllChar($text)


    je la remplace avec la mienne c est a dire :

    fonction permettant l'encodage des caract res accentuZs
    function getFormatedText($texte){ 
    $texte =utf8_decode($texte); 
    $texte =eregi_replace( "\r", "\n", $texte); 
    $texte =stripcslashes($texte); 
    return $texte;
    }
    # fin de la fonction
    


    Et la 2eme fonction que tu propose elle fonctionne parfaitement lequelle me conseillerai tu ?
    0
  7. xamurai Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   15
     
    essaye chacune. tu veras celle qui te conviens...

    test les voir
    0
  8. sniper749 Messages postés 26 Statut Membre
     
    Est ce que je dois la remplacé ou la rajouté a mon code.

    Si je dois les remplacé, peut tu me dire si c bien avec la fonction getFormatedText($texte){

    ?? mercii
    0
  9. xamurai Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   15
     
    ta function getFormatedText ne sert a rien du tout... ca ne fais rien de special a ton text.

    moi je le suprimerais.
    0
  10. sniper749 Messages postés 26 Statut Membre
     
    je l'est supprimer comme prévu

    sa ma l'air de fonctionné j'ai fé 3 test les 3 fontionnent
    correctement je réessayerai demain.

    Merci beaucoup de ton aide en tous cas tu m'enleve un gros poid.

    Aussi

    J'ai un probleme dans ce code la il y a mes 3 controle qui fonctionne sauf le denier celui du message et l'envoie de mail ne sais fait pas.
    je trouve pas la solution peut tu jeté un coup d oeil.

    <body>
    
            <script type="text/javascript">
            <!-- 
                function ValidFormMail() {
                    var OkPourSubmit = "OK";
                    var obligatoire1 = "Attention, ";
                    var obligatoire2 = " ne peut pas \352tre vide !";
                    var invalide = " est invalide !";
                     if (document.envoi_mail.champ1.value == "" ) {
                        alert(obligatoire1 + "le nom" + obligatoire2);
                        OkPourSubmit = "NOK";
                        document.envoi_mail.champ1.select();
                  
                    
    				} else if ((document.envoi_mail.champ2.value.indexOf("@",1) < -1) || (document.envoi_mail.champ2.value.length <2) || (document.envoi_mail.champ2.value.indexOf(".",document.envoi_mail.champ2.value.indexOf("@",1)+1) < 1)) {
                        alert(obligatoire1 + "l'adresse mail" + invalide);
                        OkPourSubmit = "NOK";
                        document.envoi_mail.champ2.select();
    					
    				} else if (document.envoi_mail.champ4.value == "" ) {
                        alert(obligatoire1 + "le message" + obligatoire2);
                        OkPourSubmit = "NOK";
                        document.envoi_mail.champ4.select();
    					
    				} else if (document.envoi_mail.champ4.value == "" ) {
                        alert(obligatoire1 + "le message" + obligatoire2);
                        OkPourSubmit = "NOK";
                        document.envoi_mail.champ4.select();
    				
                    }
                    
                    if (OkPourSubmit == "OK") {
                        document.envoi_mail.validation.value = "OK";
                        document.envoi_mail.submit();
                    }
                }
            // -->
            </script>
    
    
    
    <div id="ensemble">
    
    <!--en tete -->
    	<div id="en_tete">
      
        
        
        </div>
    
    <!-- Le menu-->
    <div id="menu">
    
    <a  id="btn1" href="prestation de service.php" title="Découvrez notre offre de service">
      <span>Nos préstations</span> </a>
      <a  id="btn2" href="contact.php" title="Contacter l'agence">
      <span>Contact</span> </a>
     
    <a  id="btn" href="index.php" title="Retour à l'Acceuil">
      <span>Home</span> </a>
    
      
      </div>
    
    
    <!--Le corps -->
     
    <div id="corps">
    <div id="Gestion">
      <h3><FONT><center>Contacter MS Sport Consulting</center></FONT></h3>
     
      
    
       <span3>
           <FONT>Votre <b>organisation sportive</b> a besoin de nos servives? </FONT></span3><br/>
    
          <span3><FONT>Demandez un rendez vous! </FONT></span3>
         
    </div>
    
    
    <div id="container">
    	
    	
     <form id="form1" name="envoi_mail" action="Contact - Copie.php"  method="POST" >
    	
    	<fieldset><legend>Formulaire de contact</legend>
    			<p class="first">
                
    				<label for="name">Nom</label>
    
    				<input type="text" name="Nom" id="champ1" size="30" tabindex="1" value=""/>
                    
    			</p>
    			<p>
    				<label for="email">Email</label>
    				<input type="text" name="E-Mail" id="champ2"  size="30" tabindex="2" value=""/>
                     
    			</p>
    			<p>
    				<label for="objet">Objet</label>
    
    				<input type="text" name="Objet" id="champ3" size="30"tabindex="3" value=""  />
                     
    					</p>			
    				</fieldset>
    				<fieldset>																			
    					<p>
    						<label for="message">Message</label>
    						<textarea name="Message" id="champ4" cols="30" rows="10" tabindex="4" value="">
                            </textarea>
    						
    					</p>								
    				</fieldset>					
                    
                    <p class="submit"  onclick="ValidFormMail();"> <button>Envoyer</button>  </p>
    
    	
               	
    							
    			</form>	
     <?php
                             
    						if(isset($_POST['validation']) && $_POST['validation']=="ok")
    						{
    						
                                $adresseAEnvoyer = "hk.lalaoui@gmail.com";
                               $contenuMessage = "Un client MSSC! : \n\n" . 
                                   $header = "Nom : " . $_POST['champ1'] . "\r\n" .
    										  "E-Mail : " . $_POST['champ2'] . "\r\n" .
    										  "Objet : " . $_POST['champ3'] . "\r\n" .
    										  "Message : " . $_POST['champ4'] . "\r\n" .
                                $header ='From: "' . $_POST['champ1'] . '"<' . $_POST['champ3'] . '>' . "\n";
                                if(mail($adresseAEnvoyer, $contenuMessage , $header)) {
                       
    									
    								echo '<script language="JavaScript" type="text/javascript"> ."\n";
                                            <!--//
                                                alert("Le message a bien \351t\351 envoy\351 =)");
    											document.location.href="Contact-Copie.php"; 
    
    											
                                            //-->
                                        </script>';
                                } 
    							else {
                                    echo 'Le message n\'a pu \etre envoy\351';
                                } 
                            }
                   ?>
           
    	    
    
    
    		
    		</div>
       
    
    </div>
    </div>
    
    0
  11. sniper749 Messages postés 26 Statut Membre
     
    bon
    je vais pas te derangé plus lontemp peut etre que tu répondra une autre fois
    je vais essayé de regardé encore tous sa pour essayé de trouvé la solution.

    En tous cas merci encore de ton aide.
    0
  12. xamurai Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   15
     
    c'est peut etre du à ton "action" dans form

    pourquoi as tu une page avec espace:

    Contact - Copie.php


    en plus tu as 2 fois le meme else if

    else if (document.envoi_mail.champ4.value == "" ) {
                        alert(obligatoire1 + "le message" + obligatoire2);
                        OkPourSubmit = "NOK";
                        document.envoi_mail.champ4.select();
    				
                    }
    
    
    0