encodage formulaire php

Eléphanteau du PHP | 19 Messages

05 déc. 2012, 11:47

Bonjour

Je galère depuis quelque temps avec l'encodage de ce formulaire, j'ai toujours des caractères bizarres à la place des accents.
j'ai recherché sur de nombreux sites, j'ai testé de nombreuses solutions , en vain .....!
Ma page web est enregistrée en php sous UTF-8 (sams bom)

Merci de votre aide

BB
------------------------------------------------------------------------------------------------------
<!DOCTYPE html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

/formulaire/<?
if (isset($_POST['f_envoyer'])) {
$email = trim($_POST['f_email']);
$message = ($_POST['f_message']);
$erreur_email = 0;
$erreur_message = 0;
$retour = "";
$destinataire = "[email protected]";
$sujet = "Locations cambo";
$merci = "Votre message à bien été envoyé, merci.";
if ($email == "") {
$retour .= "Entrez votre adresse email.";
$erreur_email = 1;
} else {
if (! preg_match('/^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,3}$/i',$email)) {
$retour .= "L'adresse email n'est pas correcte.";
$erreur_email = 1;
}
}
if ($message == "") {
$retour .= "Vous avez oublié votre message.";
$erreur_message = 1;
}
if ($retour =="") {
$contenu .= $email."\n";
$contenu .= $message;
mail($destinataire,$sujet,$contenu,"FROM:[email protected]");
$retour = $merci;
$email = "";
$message = "";
}
} else {
$email = "";
$message = "";
}
if ($_POST["vide"] != "") exit("Tentative d'intrusion détectée");
?>
<form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post" id="formulaire">
<p><span <? if ($erreur_email == 1){echo "class='erreur'";} ?>>Votre email : </span></p>
<div><input name="f_email" type="text" id="f_email" size="40" maxlength="40" value = "<? echo $email ?>" />
</div>
<input type="hidden" name="vide" value="" />
<p><span <? if ($erreur_message == 1){echo "class='erreur'";} ?>><br />
Votre message : </span></p>
<div>
<textarea name="f_message" cols="55" rows="5" id="f_message" ><? echo $message ?></textarea>
</div>
<div><br />
<input type="submit" name="f_envoyer" value="Envoyer" />
</div>
</form>
<p class='retour'> <? echo $retour; ?> </p> </div>


/fin formulaire/

</body>
</html>

ViPHP
xTG
ViPHP | 7331 Messages

05 déc. 2012, 11:54

Je suppose que c'est l'email qui pose problème ?
Il faut spécifier l'encodage dans le header.
Tu trouveras la solution dans les exemples de la documentation. :)

Mammouth du PHP | 702 Messages

07 déc. 2012, 16:42

RTFM

ViPHP
xTG
ViPHP | 7331 Messages

07 déc. 2012, 19:57

RTFM
J'aimerai qu'on ne retrouve pas la mauvaise ambiance des forums UNIX merci...
Je la supporte déjà bien assez toute la journée au boulot quand je cherche de l'aide pour du linux temps réel...
Restons bon enfant sur ce forum, il n'y a que cela de vrai. :D