8791 sujets

Développement web côté serveur, CMS

Bonjour à tous.


J'ai un problème avec mes accents dans ce bout de code.
Et ce, malgré les utf8_encode et utf8_decode.
Pouvez-vous m'aider à solutionner ce problème ?
D'avance merci.
Bon weekend.







		$destinataire1 = "truc@skynet.be";
		$destinataire2 = $email;
		$objet1 = utf8_encode("truc - création d'un nouveau compte");
		$objet2 = $objet1;
		
		$msg = "\n";
		$msg .= "============================================================================\n";
		$msg .= "\n";
		$msg .= "\n";
		$msg .= utf8_encode("Voici votre nouveau compte sur le site  www.truc.be")."\n";
 
		$msg .= utf8_encode("Vous pouvez donc uploader ou downloader directement sur le site")."\n";
		$msg .= "\n";
		$msg .= utf8_encode("Type de compte : $compte")."\n";
		$msg .= utf8_encode("Utilisateur : $user")."\n";
		$msg .= utf8_encode("Mot de Passe : $password")."\n";
		$msg .= utf8_encode("Adresse email : $email")."\n";
		$msg .= "\n";
		$msg .= "\n";
		$msg .= "============================================================================\n";
		$msg .= "\n";
		
		$entete = "From: $destinataire1 <>\n";
		$entete .= "Reply-To: $destinataire2\n";
		$entete .= "Content-Type: text/plain; charset='UTF-8'\n";
		$entete .= "Content-Disposition: inline\n";
		$entete .= "Content-Transfer-Encoding: 8bit\n";
		$entete .= "MIME-Version: 1.0\n";
		$entete .= "Date: $datefr $heurefr\n";
		
		$resultat1 = mail(utf8_decode($destinataire1),utf8_decode($objet1), utf8_decode($msg), utf8_decode($entete));
		$resultat2 = mail(utf8_decode($destinataire2),utf8_decode($objet2), utf8_decode($msg), utf8_decode($entete));
		
		$_POST['user']="";
		$_POST['password']="";
		$_POST['compte']="";
		$_POST['email']="";
		if (($resultat1 == false) || ($resultat2 == false)) {
			Header("Location: ../index.html");
		} else {
			Header("Location: ../index.html");
		}

Modifié par jytest (23 Oct 2010 - 15:32)
salut


J'ai du mal à comprendre ta logique Smiley biggrin


$destinataire1 = "truc@skynet.be";         
$destinataire2 = $email;


et tu fais

mail(utf8_decode($destinataire1


ensuite pourquoi encoder alors que tu décode sitôt après? çà ne sert à rien. Tu spécifie utf-8 dans le header, donc tu veux de l'utf-8, alors ne décode pas avant l'envoi.


$_POST['user']="";         
$_POST['password']="";         
$_POST['compte']="";         
$_POST['email']=""


???

et si je peux me permettre


if (($resultat1 == false)

if (($resultat1 === false)// c'est mieux

if (false === mail($destinataire1, $objet1, $msg, $entete)); 
// c'est encore mieux[cligne]


et puis, peut être, attention aux injections d'headers...
Salut,

Question $destinataire1 et $destinataire2
C'est parce que j'envoie chez le client et sur le site, l'acceptation d'un nouveau compte...

utf8_encode et utf8_decode
Tu as tout à fait raison... Et mes accents sont résolus...

$_POST['user']="";
...
C'est pour réinitialiser la boîte de questionnement.
Faut-il faire autrement ?

if (($resultat1 == false)
if (($resultat1 === false)// c'est mieux
if (false === mail($destinataire1, $objet1, $msg, $entete));
// c'est encore mieux
Peux-tu m'expliquer pourquoi 3x = ???
dans ton code ci-dessus ?

Grand merci pour les accents...
J'avais oublié d'enlever les utf8_encode et utf_8decode,
sûr que je les avais enlevé hier soir, avant d'aller dormir.