Problème de codage CHARSET pour fonction mail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de codage CHARSET pour fonction mail

par flitox » 17 mars 2005, 23:13

par matt.t » 17 mars 2005, 23:12

suite,

j'ai beau essayé htmlentities ou specialchars, rien de rien, je recois toujours des l\'été comme message...

quelqu'un peut-il passer en revue ce qui peut poser problème avec moi,
dois regarder du coté des fichiers ini d'ovh mon hebergeur, du codage charset incorrect qqpart, que ce soit en mode "echo" ou par envoi du message, le resultat est tjs le meme, tous les accents francais, sont mal encodés.

voici mon script jusqu'ici, je remercie d'avance la personne qui perdra qqminutes à m'aider. j'en peux :oops: :D :) plus....
<?php 
$message = htmlentities(stripslashes($_POST["message"])); 
$destinataire="[email protected]"; 
$contenu ="<html><head><title>Michielsen SPRL</title></head>";
$contenu.="<body><font size=2 face=arial>Bonjour,<br>ce message provient de votre formulaire en ligne et contient les informations suivantes :<br><br>";
$contenu.="<b>Nom</b> : {$_POST['nom']}<br>";
$contenu.="<b>Prénom</b> : {$_POST['prenom']}<br>";
$contenu.="<b>Téléphone</b> : {$_POST['tel']}<br>";
$contenu.="<b>Fax</b> : {$_POST['fax']}<br>";
$contenu.="<b>Message</b> : {$_POST['message']}<br>";
$contenu.="<br>Vous pouvez directement répondre à cette personne en utilisant la commande \"répondre\" de votre logiciel de messagerie.</font>";
$contenu.="</body></html>";
$headers = "MIME-Version: 1.0\r\n"; 
$headers.= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers.= "From: $prenom $nom<$email>\r\n"; 
$headers.= "Reply-To: <$email>\n"; 
mail ($destinataire,$sujet,$contenu,$headers); 
echo "ok";
?>

par Xenon_54 » 16 mars 2005, 20:01

Il a utilisé les variables $_POST['nom'] directement dans la chaine de caractères. Essaie de les entourer par {} comme ceci:
$contenu.="<b>Nom</b> : {$_POST['nom']}<br>";
;)

ouiiin

par matt.t » 16 mars 2005, 12:54

avec ton code voici ce que j'obtiens :

Code : Tout sélectionner

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/dhk/www/mail.php on line 6
mais que se passe t-il??
y-a-t-il differentes versions de php qui font que ca fonctionne ou non?

merci de m'aider encore une fois. :roll:

l'include c'est pour qu'une fois le formalaire envoyé, le visiteur revienne à la page index, mais ca ne fonctionne pas

par eSp » 15 mars 2005, 21:44

Bah moi, ça marche très bien avec le code suivant:
<?php 
$message = htmlentities($_POST['message']); 
$destinataire="[email protected]"; 
$contenu ="<html><head><title>Michielsen SPRL</title></head><body>"; //Ta balise <body> était mal placé
$contenu.="<font size=2 face=arial>Bonjour,<br>ce message provient de votre formulaire en ligne et contient les informations suivantes :<br><br>"; 
$contenu.="<b>Nom</b> : $_POST['nom']<br>"; 
$contenu.="<b>Prénom</b> : $_POST['prenom']<br>"; 
$contenu.="<b>Téléphone</b> : $_POST['tel']<br>"; 
$contenu.="<b>Fax</b> : $_POST['fax']<br>"; 
$contenu.="<b>Message</b> : $message<br>"; 
$contenu.="<br>Vous pouvez directement répondre à cette personne en utilisant la commande \"répondre\" de votre logiciel de messagerie.</font>"; 
$contenu.="</body></html>"; 
$headers = "MIME-Version: 1.0\r\n"; 
$headers.= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$headers.= "From: $prenom $nom<$email>\r\n"; 
$headers.= "Reply-To: <$email>\n"; 
mail ($destinataire,$sujet,$contenu,$headers); 
//Ton include sert à rien et je ne vois pas ce que tu voulais faire avec !
?> 
++

toujours pas....

par matt.t » 15 mars 2005, 21:02

J'ai fait tout ce que tu m'as dit mais ca ne fonctionne tjs pas correctement, voici les codes :
<?php 
$message = htmlentities($_POST['message']);
$destinataire="[email protected]"; 
$contenu ="<html><body><head><title>Michielsen SPRL</title></head>";
$contenu.="<font size=2 face=arial>Bonjour,<br>ce message provient de votre formulaire en ligne et contient les informations suivantes :<br><br>";
$contenu.="<b>Nom</b> : $nom<br>";
$contenu.="<b>Prénom</b> : $prenom<br>";
$contenu.="<b>Téléphone</b> : $tel<br>";
$contenu.="<b>Fax</b> : $fax<br>";
$contenu.="<b>Message</b> : $message<br>";
$contenu.="<br>Vous pouvez directement répondre à cette personne en utilisant la commande \"répondre\" de votre logiciel de messagerie.</font>";
$contenu.="</body></html>";
$headers = "MIME-Version: 1.0\r\n"; 
$headers.= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers.= "From: $prenom $nom<$email>\r\n"; 
$headers.= "Reply-To: <$email>\n"; 
mail ($destinataire,$sujet,$contenu,$headers); 
include "http://www.michielsensprl.be";
?> 
Voici par exemple ce que j'ai comme email : l\'été est là \"hello\"

Dans mon formulaire html, j'ai également spécifier le type de codage, je ne trouve pas d'infos sur le net.

Merci de m'aider encore, :D

A bientot

par eSp » 15 mars 2005, 00:04

Salut,

Essaie plutôt ceci:
<?php 
$message = htmlentities($_POST['message']); //$_POST['message'] si le message est récupéré via un formulaire
$destinataire = "[email protected]"; 
$contenu = "<html><head></head><body><font size=2 face=arial>Bonjour, <br>Ce message provient de votre formulaire en ligne et contient les informations suivantes ".$message."</font></body></html>"; //Concaténe tes variables
$headers = "MIME-Version: 1.0\r\n"; 
$headers.= "Content-type: text/html; charset=iso-8859-1\r\n"; //Ton charset était faux
$headers.= "From: $prenom $nom<$email>\r\n"; 
$headers.= "Reply-To: <$email>\n"; 
mail ($destinataire,$sujet,$contenu,$headers); 
?> 
:wink:

Problème de codage CHARSET pour fonction mail

par matt.t » 14 mars 2005, 22:38

Bonjour à tous et merci de me lire, voici mon ptit soucis :

J'ai créé un formulaire de contact html qui envoie le contenu de ses variables à un script php qui s'occupe de la fonction mail. Le soucis, c'est que le contenu du message tapé par le surfeur est tronqué pour peu qu'il y ai des accents ou caractères spéciaux.

Voici les deux codes que j'utilise, merci bcp à vous de me corriger tout çà et de m'expliquer ainsi je grandis en sagesse :)
<?php 
$message=htmlentities($message);
$destinataire="[email protected]"; 
$contenu="<html><head></head><body><font size=2 face=arial>Bonjour, <br>Ce message provient de votre formulaire en ligne et contient les informations suivantes  $message</font></body></html>";
$headers="MIME-Version: 1.0\r\n";
$headers.= "Content-type: text/html; charset=ISO-8859-15\r\n";
$headers.="content-transfer-encoding: 8bit\n";
$headers.="From: $prenom $nom<$email>\r\n";
$headers.="Reply-To: <$email>\n";
mail ($destinataire,$sujet,$contenu,$headers); 
include "http://www.michielsensprl.be/index.php";
?> 
et dans mon formulaire htm :

Code : Tout sélectionner

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15">
Merci!
Matt