01net    Web


Actuellement en ligne : 179 Utilisateurs dont 9 dans Programmation et développement >S'inscrire      >S'identifier      >Recherche      >Aide  
modéré par A.Ouloube, Zplay, Beno@  
01net > Forum de 01net > Programmation et développement > PHP
> Caractéres spéciaux...
Passionné(e) d'internet, de logiciels, de forums ? 01net recrute...
Auteur
Message
 
<     1       >
OUARZA
  
   
      ?   @     Posté le 15/04/2008 14:45:40  
Voter pour ce message
Bonjour, j'ai un petit souci. J'ai un formulaire sur une page, et la page dont voici le code est ma page de traitement.
Lorsque je reçoi les données dans ma boite mail, les caractéres spéciaux dont les accents sont remplacés par des choses bizare, j'ai essayé de trifouiller un peu sur le net, mais ça ne marche pas. Pouvez vous m'aider?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulaire</title>
</head>

<body>
<?php
$to = "XXXXXX";
$to1 = "From: XXXXXX\r\n";
$copie = "XXXXXX\r\n";

$mail = $_POST['mail'];
$pseudo = $_POST['pseudo'];

$from = "From: $pseudo <$mail>\r\n";
$from .= "Reply-To: $pseudo <$mail>\r\n";
$from .= "Bcc: $copie\r\n";
$subject1 = "Accuse de reception du formulaire";
$message1 = "Nous avons bien recu le formulaire.\r\n";


$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}

mail($to, $subject, $message, $from);
mail($mail, $subject1, $message1, $to1);

echo '<script type="text/javascript">
<!--
window.location = "remerciements.html";
//-->
</script>';

?>

</body>
</html>
-------
[:sms:1]
rollergirl
  
   
      ?   ^   @     Posté le 17/04/2008 14:59:43  
Voter pour ce message
J'ai déja eu le même problème et c'est tout simple en faites il faut que tu mettent un en en tete disant que le mail est encoder en html

$en_tete= "MIME-Version: 1.0\r\n";
$en_tete.= "Content-type: text/html; charset=iso-8859-1\r\n";
Beno@
  
  :-)
      ?   @     Posté le 17/04/2008 18:28:22  
Voter pour ce message
rollergirl a écrit :
J'ai déja eu le même problème et c'est tout simple en faites il faut que tu mettent un en en tete disant que le mail est encoder en html

$en_tete= "MIME-Version: 1.0\r\n";
$en_tete.= "Content-type: text/html; charset=iso-8859-1\r\n";

c'est ca mais en fait ce n'est pas le html qui nous importe mais le charset (encodage des caractères) ici on utilise iso-8859-1 qui est la norme européenne il me semble, mais il y a aussi UTF8
lemery
  tectaunique sur kamta.net
   
      ?   ^   @     Posté le 03/05/2008 11:28:25  
Voter pour ce message
pour envoyer tes données je te conseille de les encoder en utilisant la fonction php : addslashes
http://www.php.net/manual/fr/function.addslashes.php
et pour la décode : stripslashes
http://www.php.net/manual/fr/function.stripslashes.php
-------
Visiter mon site sur le développement.
http://www.kamta.net
Beno@
  
  :-)
      ?   @     Posté le 03/05/2008 12:35:34  
Voter pour ce message
lemery a écrit :
pour envoyer tes données je te conseille de les encoder en utilisant la fonction php : addslashes
http://www.php.net/manual/fr/function.addslashes.php
et pour la décode : stripslashes
http://www.php.net/manual/fr/function.stripslashes.php

je pense que ca n'est pas le bon sujet ;)
pete parker
  oups !! grilled !!
  :-)
      ?   ^   @     Posté le 03/05/2008 14:52:30  
Voter pour ce message
:D il y a toujours la methode de remplacer les lettres avec accent par les caractère html correspondant ! voici un liste , qui pourras t'aider !

http://alexandre.alapetite.net/doc-alex/alx_special.html
-------
http://www.inforumatique.fr
Spirit c'est ma meuf !  
Martius
  est bon : Mangez en !
  :-)
      ?   ^   @     Posté le 04/05/2008 14:00:56  
Voter pour ce message
PHP reçoit les données en UTF-8 (encodage des caractères multi-octets) et les envoie telles quelles vers l'e-mail, dont on a précisé qu'il était en ISO-8859-1, ce qui est faux.

Pour être sur que le mail soit bien reçu, c'est plus facile d'utiliser l'iso, notamment à cause des vieux webmails...

Donc il faut convertir le message au bon format, et l'idéal est d'utiliser les fonctions mbstring si elles sont disponibles sur ton serveur :
(PHP 4 >= 4.0.6, PHP 5)

while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}

$message = mb_convert_encoding($message, 'iso-8859-1', 'utf-8');

http://fr.php.net/manual/fr/function.mb-convert-encoding.php
<     1       >

01net > Forum de 01net > Programmation et développement > PHP
> Caractéres spéciaux...

Aller à :

Page générée en : 0.243s - X2board 2.2

Nous contacter | Charte de confiance | Voir notice légale

Tous droits réservés © 1999 - 2008 Groupe Tests - 01net.


Sites du réseau 01net Network : 01net - 01men - Rmc.fr - Bfmtv.fr - Radiobfm.com - TousLesPodcasts - Micro Achat - Caractere.net -
Electronique.biz - Mesures.com - Transaction.fr

GADGET 2.0
RSS, podcast, widgets, web TV et radio, jeux en ligne ... le portail de bureau personnalisable à l'infini !
TOP TELECHARGEMENTS
Découvrez notre sélection de logiciels indispensables et les meilleurs outils de création numérique !