8791 sujets

Développement web côté serveur, CMS

voilà j'ai un formulaire générer avec ce site :
ici

mais lorsque je reçois un message les caractère accentué ne s'affiche pas bien du tout, c'est parfois illisible...

voici le code:

<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n&#65533;&#65533;tes pas certain de ce que vous faites !
$list['f_7']=array("Sélectionnez","15 MARS: LES PRINCIPES DE BASE DES HUILES ESSENTIELLES","7 AVRIL: DECOUVERTE DES HUILES DE MASSAGE ET MASSAGE DU DOS","14 AVRIL: DECOUVERTE DES HUILES DE MASSAGE ET MASSAGE DU DOS","21 AVRIL: GEMMOTHERAPIE FAMILIALE ","5 MAI : AUTOUR DE LA QUARANTAINE ");
$list['f_8']=array("Sélectionnez","15 MARS: LES PRINCIPES DE BASE DES HUILES ESSENTIELLES","7 AVRIL: DECOUVERTE DES HUILES DE MASSAGE ET MASSAGE DU DOS","14 AVRIL: DECOUVERTE DES HUILES DE MASSAGE ET MASSAGE DU DOS","21 AVRIL: GEMMOTHERAPIE FAMILIALE ","5 MAI : AUTOUR DE LA QUARANTAINE ");
if(isset($_POST['submit'])){
	$erreur="";
	// Nettoyage des entr&eacute;es
	while(list($var,$val)=each($_POST)){
	if(!is_array($val)){
		$$var=strip_tags($val);
	}else{
		while(list($arvar,$arval)=each($val)){
				$$var[$arvar]=strip_tags($arval);
			}
		}
	}
	// Formatage des entr&eacute;es
	$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9&eacute;&#65533;&#65533;&#65533;&#65533;\ -]", "", $f_1)));
	$f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9&eacute;&#65533;&#65533;&#65533;&#65533;\ -]", "", $f_2)));
	$f_3=trim(ucwords(eregi_replace("[^a-zA-Z0-9&eacute;&#65533;&#65533;&#65533;&#65533;\ -]", "", $f_3)));
	$f_4=trim(eregi_replace("[^0-9+]", "", $f_4));
	$f_5=trim(ucwords(eregi_replace("[^a-zA-Z0-9&eacute;&#65533;&#65533;&#65533;&#65533;\ -]", "", $f_5)));
	$f_6=strip_tags(trim($f_6));
	
	
	
	
	// Verification des champs
	if(strlen($f_1)<2){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Nom &raquo; est vide ou incomplet.</span>";
		$errf_1=1;
	}
	if(strlen($f_2)<2){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Prenom &raquo; est vide ou incomplet.</span>";
		$errf_2=1;
	}
	if(strlen($f_3)<2){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Adresse &raquo; est vide ou incomplet.</span>";
		$errf_3=1;
	}
	if(strlen($f_4)<2){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Code postal &raquo; est vide ou incomplet.</span>";
		$errf_4=1;
	}
	if(strlen($f_5)<2){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Localit&eacute; &raquo; est vide ou incomplet.</span>";
		$errf_5=1;
	}
	if($f_7==0){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Date de r&eacute;servation &raquo; n'a pas &eacute;t&eacute; d&eacute;fini.</span>";
		$errf_7=1;
	}
	if($erreur==""){
		// Cr&eacute;ation du message
		$titre="Message de votre site";
		$tete="From:Site@Aromardennes.be\n";
		$corps.="Nom : ".$f_1."\n";
		$corps.="Prenom : ".$f_2."\n";
		$corps.="Adresse : ".$f_3."\n";
		$corps.="Code postal : ".$f_4."\n";
		$corps.="Localit&eacute; : ".$f_5."\n";
		$corps.="Email : ".$f_6."\n";
		$corps.="Date de r&eacute;servation : ".$list['f_7'][$f_7]."\n";
		$corps.="Autre date : ".$list['f_8'][$f_8]."\n";
		if(mail("monadressemail@test.com", $titre, stripslashes($corps), $tete)){
			$ok_mail="true";
		}else{
			$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
		}
	}
}
?>


merci beaucoup et bonne journée
Modifié par thanos (06 Mar 2008 - 10:31)
tu devrais précisez dans l'entete du mail quel type d'encodage tu emploies pour constituer le mail.

et mettre cet encodage en balise meta de ton formulaire.

tu peux aussi essayé de convertir en entités les accents.

mais quel que soit tes choix. ensuite ça va dependre du logiciel qui va permettre de lire les messages.

moi si je regarde mes messages comme actuellement directement sur mon webmail, je vois bien que le webmail gere mal les accents.

alors que chez moi avec outlook c'est bien.
un très grand merci pour ta réponse...

mais quelle ligne de code et ou exactement dois-je mettre ce que tu me dit?
( n'existe t-il pas un moyen de mettre une ligne de code pour que toute les webmail le lise correctement?)

merci encore une fois
en cherchant j'ai trouver par moi même ce qui est gratifiant quand même Smiley smile

j'ai changer la de eregi_replace [^a-zA-Z0-9éèàäö -]
a écrit :
en cherchant j'ai trouver par moi même ce qui est gratifiant quand même


he oui Smiley cligne

et aussi oui finalement le plus simple c'est de sucrer les accents.

sinon j'aurais proposé d'essayé quelque chose comme çà

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

et
< meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> au debut du formulaire

ou alors la même en utf8. ou en text/plain si c'est pas de html.

je sais d'ailleurs pas ce qui passe le mieux.

comme je le lisais de toute façon y a bcp de parametres difficile a maitriser comme l'etat des routeurs qui vont convoyer le mail...par exemple
Modifié par CPascal (06 Mar 2008 - 11:14)