Uft8 decode fonctionne quand il veut

Résolu
sniper749 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -  
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

xamurai Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   15
 
peut tu montrer la page?
0
sniper749 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sniper749 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
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
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
sniper749 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
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
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
sniper749 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
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
sniper749 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
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
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