Problème accent ©Ã©Ã© à à à formulaire php

nemoeduc Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
nemoeduc Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
À l'aide!!!!

Je sais que le problème est au niveau de l'encodage, UTF-8 ou iso-8859-2. Sur les pages HTML, je peut faire le changement. Mais dans le fichier php du formulaire, je ne comprends rien.
Le message reçu via gmail est parfaitement correcte mais via Outlook, tous les accents sont problématiques.
Est-il possible d'apporter une modification dans le formulaire php? Ajouter l'encodage iso par exemple?

Voici le code du fichier:

<?php

// Read the form values
$success = false;
$fname = isset( $_POST['fname'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['fname'] ) : "";
$lname = isset( $_POST['lname'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['lname'] ) : "";
$senderEmail = isset( $_POST['email'] ) ? preg_replace( "/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['email'] ) : "";
$phone = isset( $_POST['phone'] ) ? preg_replace( "/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['phone'] ) : "";
$category = isset( $_POST['category'] ) ? preg_replace( "/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['category'] ) : "";
$message = isset( $_POST['message'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message'] ) : "";

$mail_subject = 'Message envoyé par ' . $fname. $lname;

$body = 'Name: '. $fname . $lname . "\r\n";
$body .= 'Email: '. $senderEmail . "\r\n";
$body .= 'Phone: '. $phone . "\r\n";
$body .= 'Category: '. $category . "\r\n";
$body .= 'Message: ' . "\r\n" . $message;



// If all values exist, send the email
if ( $fname && $senderEmail && $message ) {
  $recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">";
  $headers = "From: " . $fname . $lname . " <" . $senderEmail . ">";  
  $success = mail( $recipient, $mail_subject, $body, $headers );
  echo "<p class='success'>Votre message a été envoyé avec succès! Nous vous contacterons sous peu.</p>";
}

?>


Merci de votre aide!!!!

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour

Tu peux utiliser un code comme celui-là :
function Envoi_Mail($to,$sujet,$message='') {
  // Creation de l'entete du mail a envoyer
  // --------------------------------------
 $from = 'idarkness.esy.es<site-web@idar****.esy.es>';
  $boundary = md5(uniqid(microtime(), TRUE));
  $headers = "From: $from\r\n"; // FROM ...
  //$headers .= "Cc: $cc\n"; //pour mettre un destinataire en copie 
  $headers .= 'Mime-Version: 1.0'."\r\n";
  $headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
  $headers .= "\r\n";

  // Creation du message a envoyer
  // -----------------------------
  $msg  =
  '--' . $boundary . "\r\n" .
  'Content-type: text/html; charset=utf-8' . "\r\n\r\n
  <html>
   <body>      
    $message
   </body>
  </html>\r\n";

  // Envoi du mail
  // -------------
  return mail($to, $sujet, $msg, $headers);
 } 
  • en adaptant à tes besoins (pour le from par exemple...)

0
nemoeduc Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup!!!
Je vais essayer mais j'aurais certainement d'autres problèmes car j'utilise des script php déjà préfabriqué qui viennent avec un thème (template).

Ce que j'aurais aimez, si cela est faisable est juste de pouvoir intégrer à quelque part dans le formulaire le Content-type: text/html; charset=utf-8.

Dans le fichier php que j'utilise, il y a ceci:
$message = isset( $_POST['message'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message'] ) : "";

J'ai essayé d'ajouter le charset mais je ne connais pas la syntaxe du langage php. Donc message d'erreur pour l'envoi.

Je fais possiblement erreur. Il serait peut-être une meilleure idée d'utiliser un autre script php.

Merci encore!
0