Formulaire PHP réponse mail accent

Formulaire PHP réponse mail accent - PHP - Programmation

Marsh Posté le 27-10-2016 à 09:39:58    

Bonjour,
 
Voilà, je fais un site pour une entreprise, et j'ai un formulaire de contact (nom, téléphone, mail, message), et le contenu me reviens sur mon mail.
Cela marche bien, sauf que dans mon mail, j'ai des caractères étrange a la place des accents.
 
Je ne sais pas quoi modifié par rapport à çà. Mes fichiers (HTML, PHP, et JS sont en UTF8)
Merci d'avance
 
Si vous avez une autre solution dans le même genre qui prends les accents, je suis preneur aussi.
 
Voici les codes:
 
HTML:
 

Code :
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>Mon site Internet</title>
  5. <meta charset = "UTF-8">
  6. <meta name="description" content="Your description">
  7. <meta name="keywords" content="Your keywords">
  8. <meta name="author" content="Your name">
  9. <link rel="stylesheet" href="css/bootstrap.css" type="text/css" media="screen">
  10. <link rel="stylesheet" href="css/responsive.css" type="text/css" media="screen">
  11. <link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
  12. <link rel="icon" type="image/png" href="img/ico/favicon.png" />
  13. <!--[if IE]><link rel="shortcut icon" type="image/x-icon" href="img/ico/favicon.ico" /><![endif]-->
  14. <link rel="apple-touch-icon" sizes="57x57" href="img/ico/apple-icon-57x57.png">
  15. <link rel="apple-touch-icon" sizes="60x60" href="img/ico/apple-icon-60x60.png">
  16. <link rel="apple-touch-icon" sizes="72x72" href="img/ico/apple-icon-72x72.png">
  17. <link rel="apple-touch-icon" sizes="76x76" href="img/ico/apple-icon-76x76.png">
  18. <link rel="apple-touch-icon" sizes="114x114" href="img/ico/apple-icon-114x114.png">
  19. <link rel="apple-touch-icon" sizes="120x120" href="img/ico/apple-icon-120x120.png">
  20. <link rel="apple-touch-icon" sizes="144x144" href="img/ico/apple-icon-144x144.png">
  21. <link rel="apple-touch-icon" sizes="152x152" href="img/ico/apple-icon-152x152.png">
  22. <link rel="apple-touch-icon" sizes="180x180" href="img/ico/apple-icon-180x180.png">
  23. <link rel="icon" type="image/png" sizes="192x192"  href="img/ico/android-icon-192x192.png">
  24. <link rel="icon" type="image/png" sizes="32x32" href="img/ico/favicon-32x32.png">
  25. <link rel="icon" type="image/png" sizes="96x96" href="img/ico/favicon-96x96.png">
  26. <link rel="icon" type="image/png" sizes="16x16" href="img/ico/favicon-16x16.png">
  27. <link href='http://fonts.googleapis.com/css?family=Open+Sans:400,300' rel='stylesheet' type='text/css'>
  28. <script type="text/javascript" src="js/jquery.js"></script>
  29. <script type="text/javascript" src="js/superfish.js"></script>
  30. <script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
  31. <script src="js/forms.js"></script>
  32. <script>
  33.    jQuery(window).load(function() {
  34.     jQuery('.spinner').animate({'opacity':0},1000,'easeOutCubic',function (){jQuery(this).css('display','none')});
  35.    });
  36. </script>
  37. <!--[if lt IE 8]>
  38.     <div style='text-align:center'><a href="http://www.microsoft.com/windows/internet-explorer/default.aspx?ocid=ie6_countdown_bannercode"><img src="http://www.theie6countdown.com/img/upgrade.jpg"border="0"alt=""/></a></div> 
  39.  <![endif]-->
  40. <!--[if (gt IE 9)|!(IE)]><!-->
  41. <!--<![endif]-->
  42. <!--[if lt IE 9]>
  43.     <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
  44.     <link rel="stylesheet" href="css/ie.css" type="text/css" media="screen">
  45.     <link href='http://fonts.googleapis.com/css?family=Open+Sans:300' rel='stylesheet' type='text/css'>
  46.     <link href='http://fonts.googleapis.com/css?family=Open+Sans:400' rel='stylesheet' type='text/css'>
  47.   <![endif]-->
  48. </head>
  49. <body>
  50. <div class="spinner"></div>
  51. <!--=== header ===-->
  52. <header>
  53.       <div class="container clearfix">
  54.     <div class="row">
  55.           <div class="span12">
  56.         <div class="navbar navbar_">
  57.               <div class="container">
  58.             <h1 class="brand brand_"><a href="index.html"><img alt="" src="img/logo2.png"> </a></h1>
  59.             <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse_">Menu <span class="icon-bar"></span> </a>
  60.             <div class="nav-collapse nav-collapse_  collapse">
  61.                   <ul class="nav sf-menu">
  62.                 <li><a href="index.html">Accueil</a></li>
  63.                 <li><a href="realisations.html">Nos réalisations</a></li>
  64.                 <li><a href="photos.html">Galleries photos</a></li>
  65.                 <li><a href="atelier.html">Notre atelier</a></li>
  66.                 <li class="active"><a href="contact.html">Nous contacter</a></li>
  67.               </ul>
  68.                 </div>
  69.           </div>
  70.             </div>
  71.       </div>
  72.         </div>
  73.   </div>
  74.     </header>
  75. <div class="bg-content">
  76.       <!--=== content ===-->
  77.       <div id="content">
  78.     <div class="container">
  79.           <div class="row">
  80.         <article class="span6">
  81.    <h3>Nous Contacter</h3>
  82.    <div class="inner-1">
  83.    <form id="contact-form">
  84.     <div class="success"> Message Envoyé ! <strong>Nous vous contacterons prochainement.</strong> </div>
  85.     <fieldset>
  86.      <div>
  87.       <label class="name">
  88.       <input type="text" value="Nom">
  89.       <br>
  90.       <span class="error">*Ce n'est pas un nom.</span> <span class="empty">*Champ requis.</span> </label>
  91.      </div>
  92.      <div>
  93.       <label class="phone">
  94.       <input type="tel" value="Téléphone">
  95.       <br>
  96.       <span class="error">*Ce n'est pas un numéro de téléphone.</span> <span class="empty">*Champ requis.</span> </label>
  97.      </div>
  98.      <div>
  99.       <label class="email">
  100.       <input type="email" value="E-mail">
  101.       <br>
  102.       <span class="error">*Ce n'est pas une adresse E-mail.</span> <span class="empty">*Champ requis.</span> </label>
  103.      </div>
  104.      <div>
  105.       <label class="message">
  106.       <textarea>Message</textarea>
  107.       <br>
  108.       <span class="error">*Le message est trop court.</span> <span class="empty">*Champ requis.</span> </label>
  109.      </div>
  110.      <div class="buttons-wrapper"> <a class="btn btn-1" data-type="reset">Effacer</a> <a class="btn btn-1" data-type="submit">Envoyer</a></div>
  111.     </fieldset>
  112.                 </form>
  113.    </div>
  114.             </article>
  115.   <article class="span6">
  116.    <h3>Nous situer</h3>
  117.     <span style="color: white">Entreprise</span><br>
  118.     <span style="color: white">Rue du soleil</span><br>
  119.     <span style="color: white">99 999 Lac Bleur</span><br><br>
  120.    <address class="address-1">    
  121.     <div class="overflow">
  122.     <span>Bureau:</span><span style="color: white">00.00.00.00.00</span><br>
  123.     <span>Fax:</span><span style="color: white">00.00.00.00.00</span><br>
  124.     <span>Portable:</span><span style="color: white">00.00.00.00.00</span><br>
  125.     <span>E-mail:</span><a href="mailto:monsite@orange.fr" class="mail-1">monsite@orange.fr</a><br>
  126.    </address>
  127.    <h3>Horaires d'ouverture:</h3>
  128.     <span style="color: white">8h-12h / 13h-17h</span><br>
  129.    <h3>Horaires de fermeture:</h3>
  130.     <span style="color: white">samedi et dimanche</span><br>
  131.   </article>
  132.   </div>
  133.         
  134.       </div>
  135.  
  136.         </div><!--fin de row-->
  137. <div class="container">
  138.           <div class="row">
  139.         <article class="span12">
  140.    <div class="map_area">
  141.     <div id='map-canvas' ></div><br>
  142.    </div>
  143.  </article>
  144.  </div>
  145.  </div>
  146.   </div>
  147.     </div>
  148. <!--=== footer ===-->
  149. <footer>
  150. <div class="container clearfix">
  151.   <ul class="list-social pull-right">
  152.    <li><a href="index.html"><img alt="" src="img/logo3.png"> </a></h1></li>         
  153.   </ul>
  154.   <div class="privacy pull-left">2016 - Mon site Internet</div>
  155.   </div>
  156. </footer>
  157. <script type="text/javascript" src="js/bootstrap.js"></script>
  158. <!-- Google Map js -->
  159.         <!--<script src="https://maps.googleapis.com/maps/api/js"></script>-->
  160.  <script type="text/javascript" src="http://maps.google.com/maps/api/js?key=MYAPIKEY&exp&sensor=false&libraries=places">sensor=false"></script> <!-- Google Maps API -->
  161. <script>
  162. var map; // Google map object
  163. // Initialize and display a google map
  164. function Init()
  165. {
  166.  // Create a Google coordinate object for where to center the map
  167.  var latlngDC = new google.maps.LatLng( 0.0, 0.0 ); // Coordinates of Washington, DC (area centroid)
  168.  // Map options for how to display the Google map
  169.  var mapOptions = { zoom: 16, center: latlngDC  };
  170.  // Show the Google map in the div with the attribute id 'map-canvas'.
  171.  map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
  172.  // Place a standard Google Marker at the same location as the map center (Washington, DC)
  173.  // When you hover over the marker, it will display the title
  174.  var marker = new google.maps.Marker( {
  175.   position: latlngDC,   
  176.   map: map,
  177.   icon: 'img/logomarker.png',
  178.   animation: google.maps.Animation.BOUNCE // set marker to bounce
  179.  });
  180. }
  181. // Call the method 'Init()' to display the google map when the web page is displayed ( load event )
  182. google.maps.event.addDomListener( window, 'load', Init );
  183. </script>
  184. <style>
  185. /* style settings for Google map */
  186. #map-canvas
  187. {
  188.  width : 100%;  /* map width */
  189.  height: 370px; /* map height */
  190. }
  191. </style>
  192. </body>
  193. </html>


 
forms.js:
 
 

Code :
  1. //forms
  2. ;(function($){
  3. $.fn.forms=function(o){
  4.  return this.each(function(){
  5.   var th=$(this)
  6.    ,_=th.data('forms')||{
  7.     errorCl:'error',
  8.     emptyCl:'empty',
  9.     invalidCl:'invalid',
  10.     notRequiredCl:'notRequired',
  11.     successCl:'success',
  12.     successShow:'4000',
  13.     mailHandlerURL:'bat/MailHandler.php',
  14.     ownerEmail:'mailreponse@orange.fr',
  15.     stripHTML:true,
  16.     smtpMailServer:'localhost',
  17.     targets:'input,textarea',
  18.     controls:'a[data-type=reset],a[data-type=submit]',
  19.     validate:true,
  20.     rx:{
  21.      ".name":{rx:/^[a-zàáâãäåçèéêëìíîïðòóôõöùúûüýÿ][a-zàáâãäåçèéêëìíîïðòóôõöùúûüýÿ\' -]+[a-zàáâãäåçèéêëìíîïðòóôõöùúûüýÿ]$/i,target:'input'},
  22.      ".state":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
  23.      ".email":{rx:/^(("[\w-\s]+" )|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+" )([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i,target:'input'},
  24.      ".phone":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'},
  25.      ".fax":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'},
  26.      ".message":{rx:/.{20}/,target:'textarea'}
  27.     },
  28.     preFu:function(){
  29.      _.labels.each(function(){
  30.       var label=$(this),
  31.        inp=$(_.targets,this),
  32.        defVal=inp.val(),
  33.        trueVal=(function(){
  34.           var tmp=inp.is('input')?(tmp=label.html().match(/value=['"](.+?)['"].+/),!!tmp&&!!tmp[1]&&tmp[1]):inp.html()
  35.           return defVal==''?defVal:tmp
  36.          })()
  37.       trueVal!=defVal
  38.        &&inp.val(defVal=trueVal||defVal)
  39.       label.data({defVal:defVal})
  40.       inp
  41.        .bind('focus',function(){
  42.         inp.val()==defVal
  43.          &&(inp.val(''),_.hideEmptyFu(label),label.removeClass(_.invalidCl))
  44.        })
  45.        .bind('blur',function(){
  46.         _.validateFu(label)
  47.         if(_.isEmpty(label))
  48.          inp.val(defVal)
  49.          ,_.hideErrorFu(label.removeClass(_.invalidCl))
  50.        })
  51.        .bind('keyup',function(){
  52.         label.hasClass(_.invalidCl)
  53.          &&_.validateFu(label)
  54.        })
  55.       label.find('.'+_.errorCl+',.'+_.emptyCl).css({display:'block'}).hide()
  56.      })
  57.      _.success=$('.'+_.successCl,_.form).hide()
  58.     },
  59.     isRequired:function(el){
  60.      return !el.hasClass(_.notRequiredCl)
  61.     },
  62.     isValid:function(el){
  63.      var ret=true
  64.      $.each(_.rx,function(k,d){
  65.       if(el.is(k))
  66.        ret=d.rx.test(el.find(d.target).val())
  67.      })
  68.      return ret
  69.     },
  70.     isEmpty:function(el){
  71.      var tmp
  72.      return (tmp=el.find(_.targets).val())==''||tmp==el.data('defVal')
  73.     },
  74.     validateFu:function(el){
  75.      el.each(function(){
  76.       var th=$(this)
  77.        ,req=_.isRequired(th)
  78.        ,empty=_.isEmpty(th)
  79.        ,valid=_.isValid(th)
  80.       if(empty&&req)
  81.        _.showEmptyFu(th.addClass(_.invalidCl))
  82.       else
  83.        _.hideEmptyFu(th.removeClass(_.invalidCl))
  84.       if(!empty)
  85.        if(valid)
  86.         _.hideErrorFu(th.removeClass(_.invalidCl))
  87.        else
  88.         _.showErrorFu(th.addClass(_.invalidCl))
  89.      })
  90.     },
  91.     getValFromLabel:function(label){
  92.      var val=$('input,textarea',label).val()
  93.       ,defVal=label.data('defVal')
  94.      return label.length?val==defVal?'nope':val:'nope'
  95.     }
  96.     ,submitFu:function(){
  97.      _.validateFu(_.labels)
  98.      if(!_.form.has('.'+_.invalidCl).length)
  99.       $.ajax({
  100.        type: "POST",
  101.        url:_.mailHandlerURL,
  102.        data:{
  103.         name:_.getValFromLabel($('.name',_.form)),
  104.         email:_.getValFromLabel($('.email',_.form)),
  105.         phone:_.getValFromLabel($('.phone',_.form)),
  106.         fax:_.getValFromLabel($('.fax',_.form)),
  107.         state:_.getValFromLabel($('.state',_.form)),
  108.         message:_.getValFromLabel($('.message',_.form)),
  109.         owner_email:_.ownerEmail,
  110.         stripHTML:_.stripHTML
  111.        },
  112.        success: function(){
  113.         _.showFu()
  114.        }
  115.       })
  116.     },
  117.     showFu:function(){
  118.      _.success.slideDown(function(){
  119.       setTimeout(function(){
  120.        _.success.slideUp()
  121.        _.form.trigger('reset')
  122.       },_.successShow)
  123.      })
  124.     },
  125.     controlsFu:function(){
  126.      $(_.controls,_.form).each(function(){
  127.       var th=$(this)
  128.       th
  129.        .bind('click',function(){
  130.         _.form.trigger(th.data('type'))
  131.         return false
  132.        })
  133.      })
  134.     },
  135.     showErrorFu:function(label){
  136.      label.find('.'+_.errorCl).slideDown()
  137.     },
  138.     hideErrorFu:function(label){
  139.      label.find('.'+_.errorCl).slideUp()
  140.     },
  141.     showEmptyFu:function(label){
  142.      label.find('.'+_.emptyCl).slideDown()
  143.      _.hideErrorFu(label)
  144.     },
  145.     hideEmptyFu:function(label){
  146.      label.find('.'+_.emptyCl).slideUp()
  147.     },
  148.     init:function(){
  149.      _.form=_.me
  150.      _.labels=$('label',_.form)
  151.      _.preFu()
  152.      _.controlsFu()
  153.      _.form
  154.       .bind('submit',function(){
  155.        if(_.validate)
  156.         _.submitFu()
  157.        else
  158.         _.form[0].submit()
  159.        return false
  160.       })
  161.       .bind('reset',function(){
  162.        _.labels.removeClass(_.invalidCl)
  163.        _.labels.each(function(){
  164.         var th=$(this)
  165.         _.hideErrorFu(th)
  166.         _.hideEmptyFu(th)
  167.        })
  168.       })
  169.      _.form.trigger('reset')
  170.     }
  171.    }
  172.   _.me||_.init(_.me=th.data({forms:_}))
  173.   typeof o=='object'
  174.    &&$.extend(_,o)
  175.  })
  176. }
  177. })(jQuery)
  178. $(window).load(function(){
  179.    $('#contact-form').forms({
  180.       ownerEmail:'mailreponse@orange.fr'
  181.       })
  182.    })


 
mailhander.php :
 

Code :
  1. <?php
  2. $owner_email = $_POST["owner_email"];
  3. $headers = "MIME-Version: 1.0\r\n";
  4. $headers = "\nContent-Type: text/plain; charset=iso-8859-1" // Type MIME
  5. $headers = 'From:' . $_POST["email"];
  6. $subject = 'Message de Mon site internet';
  7. $messageBody = "";
  8. if($_POST['name']!='nope'){
  9.  $messageBody .= '<p>Nom: ' . $_POST["name"] . '</p>' . "\n";
  10.  $messageBody .= '<br>' . "\n";
  11. }
  12. if($_POST['email']!='nope'){
  13.  $messageBody .= '<p>E-mail: ' . $_POST['email'] . '</p>' . "\n";
  14.  $messageBody .= '<br>' . "\n";
  15. }else{
  16.  $headers = '';
  17. }
  18. if($_POST['state']!='nope'){
  19.  $messageBody .= '<p>State: ' . $_POST['state'] . '</p>' . "\n";
  20.  $messageBody .= '<br>' . "\n";
  21. }
  22. if($_POST['phone']!='nope'){
  23.  $messageBody .= '<p>Téléphone: ' . $_POST['phone'] . '</p>' . "\n";
  24.  $messageBody .= '<br>' . "\n";
  25. }
  26. if($_POST['fax']!='nope'){
  27.  $messageBody .= '<p>Fax Number: ' . $_POST['fax'] . '</p>' . "\n";
  28.  $messageBody .= '<br>' . "\n";
  29. }
  30. if($_POST['message']!='nope'){
  31.  $messageBody .= '<p>Message: ' . '</p>' . "\n";
  32.  $messageBody .= '<br>' . "\n";
  33.  $messageBody .= '<p>'. $_POST['message'] . '</p>' . "\n";
  34. }
  35. if($_POST["stripHTML"] == 'true'){
  36.  $messageBody = strip_tags($messageBody);
  37. }
  38. try{
  39.  if(!mail($owner_email, $subject, $messageBody, $headers)){
  40.   throw new Exception('mail failed');
  41.  }else{
  42.   echo 'mail sent';
  43.  }
  44. }catch(Exception $e){
  45.  echo $e->getMessage() ."\n";
  46. }
  47. ?>


---------------
L'amour c'est comme le jardinage : Cà commence par une pelle, et çà se termine par une graine.
Reply

Marsh Posté le 27-10-2016 à 09:39:58   

Reply

Marsh Posté le 27-10-2016 à 11:01:17    

Pb classique de charset. Ton site est en UTF-8 mais ton mail est sans doute en ISO-8859-1.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 27-10-2016 à 11:31:16    

Merci, et je dois changer quoi pour corriger çà ?


---------------
L'amour c'est comme le jardinage : Cà commence par une pelle, et çà se termine par une graine.
Reply

Marsh Posté le 27-10-2016 à 12:01:18    

Mdr déjà commence peut-être par la ligne 4 du fichier mailhander.php ....
 

Reply

Marsh Posté le 27-10-2016 à 12:25:24    

Code :
  1. <?php
  2. $owner_email = $_POST["owner_email"];
  3. $headers = "MIME-Version: 1.0\r\n";
  4. $headers = "\nContent-Type: text/plain; charset=iso-8859-1" // Type MIME
  5. $headers = 'From:' . $_POST["email"];
  6. $subject = 'Message de Mon site internet';

Reply

Marsh Posté le 27-10-2016 à 13:19:09    

A carrément, tu penses qu'il est si nul que ça pour ne pas comprendre ce que je lui avais répondu ?
 
Ps : 1 post de plus pour moi aussi ...

Reply

Marsh Posté le 27-10-2016 à 13:37:43    

Bonjour,
 
J'ai bien changé par UTF8, mais toujours pareil :
 

Code :
  1. $owner_email = $_POST["owner_email"];
  2. $headers = "MIME-Version: 1.0\r\n";
  3. $headers = "\nContent-Type: text/plain; charset=utf-8";
  4. $headers = 'From:' . $_POST["email"];
  5. $subject = 'Mon site internet';
  6. $messageBody = "";


 
Voici le genre de truc que je reçois en mail.

Citation :

Nom: Aur��lien
 
E-mail: tyty@orange.fr
 
T��l��phone: 34323432
 
Message:  
 
Cong��s
iozejfoizef
&��"'(-��_����
odifnsdoifn
sdopfns
fn
sdfn
sdn
fisdnize,nfoinezfionezfo
fnsd
f


---------------
L'amour c'est comme le jardinage : Cà commence par une pelle, et çà se termine par une graine.
Reply

Marsh Posté le 27-10-2016 à 13:59:49    

Vérifies également l'encodage de tes fichiers dans ton éditeur, Ex sous Notepad++ Encodage-> Encoder en UTF-8 (sans Bom)

Reply

Marsh Posté le 27-10-2016 à 14:05:40    

Toujours pareil


---------------
L'amour c'est comme le jardinage : Cà commence par une pelle, et çà se termine par une graine.
Reply

Marsh Posté le 27-10-2016 à 14:07:22    

essaies ça :

Code :
  1. $owner_email = $_POST["owner_email"];
  2.     $headers = 'MIME-Version: 1.0'."\r\n";
  3. $headers .='Content-Type: text/plain; charset="utf-8"'."\r\n";
  4.     $headers .= 'From:' . $_POST["email"];
  5.     $subject .= 'Mon site internet';
  6.     $messageBody = "";

Reply

Marsh Posté le 27-10-2016 à 14:07:22   

Reply

Marsh Posté le 27-10-2016 à 14:14:03    

Non, C'est pareil.

 

Les même caractères bizarre.


---------------
L'amour c'est comme le jardinage : Cà commence par une pelle, et çà se termine par une graine.
Reply

Marsh Posté le 27-10-2016 à 14:34:06    

Hormis tenté un encodage forcé directement depuis un htaccess, je sèche ....
 
http://www.astuces-webmaster.ch/pa [...] odage-utf8

Reply

Marsh Posté le 27-10-2016 à 14:55:01    

if (mb_detect_encoding($texte) == 'UTF-8')
{
    $texte= utf8_decode($texte);
}
 
Sinon, faire dans l'autre sens :
if (mb_detect_encoding($texte) != 'UTF-8')
{
    $texte= utf8_encode($texte);
}


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 27-10-2016 à 15:04:57    

Je peux mettre les deux ?
Je mets ça à quel endroit ?


---------------
L'amour c'est comme le jardinage : Cà commence par une pelle, et çà se termine par une graine.
Reply

Marsh Posté le 27-10-2016 à 16:25:03    

Non, c'est l'un ou l'autre (plutôt le 2ème du reste).
$texte sera à remplacer par tes différentes variables de type texte qui ont un pb d'encodage.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 27-10-2016 à 20:01:38    

Je pense que j'ai du rater quelque chose en prenant comme variable "message" :
 

Code :
  1. if (mb_detect_encoding('message') != 'UTF-8'){
  2.  'message'= utf8_encode('message');
  3. }


---------------
L'amour c'est comme le jardinage : Cà commence par une pelle, et çà se termine par une graine.
Reply

Marsh Posté le 28-10-2016 à 00:17:37    

Bon, petite avancée,  
 
en tapant ceci, çà marche, mais, j'ai plus le mail indiquer, mai CGI-Mailer a la place.
CGI-Mailer viens de cgi-mailer@kundenserver.de pour information.
 
Comment faire pour corriger çà ?
 
Merci d'avance
 

Code :
  1. $owner_email = $_POST["owner_email"];
  2. $headers = 'From:' . $_POST["email"];
  3. $headers = 'MIME-Version: 1.0'."\r\n";
  4. $headers .='Content-Type: text/plain; charset="utf-8"'."\r\n";


---------------
L'amour c'est comme le jardinage : Cà commence par une pelle, et çà se termine par une graine.
Reply

Marsh Posté le 28-10-2016 à 10:51:13    

twinsen60 a écrit :

Je pense que j'ai du rater quelque chose en prenant comme variable "message" :
 

Code :
  1. if (mb_detect_encoding('message') != 'UTF-8'){
  2.  'message'= utf8_encode('message');
  3. }



Ca, c'est sûr ! Ce que tu as écrit n'a aucun sens.  :pt1cable:  
if (mb_detect_encoding($messageBody) != 'UTF-8'){  
    $messageBody= utf8_encode($messageBody);  
}


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 29-10-2016 à 01:33:51    

Bon, les encode, décode... j'y comprends rien.
 
Mon $header et en "text/plain", et "UTF8" ...
 
Pourquoi ne pas faire les résultats sous forme de tableau en HTML ?
Cela changerai quelque chose ?
 
Comment faire ?
 
Merci d'avance
 :hello:  
 


---------------
L'amour c'est comme le jardinage : Cà commence par une pelle, et çà se termine par une graine.
Reply

Marsh Posté le 29-10-2016 à 11:43:33    

Toute la chaîne de traitement doit être dans le même charset. Dans ton, cas, de l'uTF-8. Or, il  y a manifestement à un endroit où c'est de l'ISO-8859-1. Les encode / decode sont là pour convertir de l'utf8 en ISO-8859-1 et inversement.
 
Le dév demande un gros investissement en terme de temps d'apprentissage. Il faut lire la doc en ligne de php :o Sans ça, point de salut et tu pataugeras sans arriver au résultat que tu veux.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed