Problème de code dans un formulaire

[Résolu]
Signaler
Messages postés
6
Date d'inscription
vendredi 9 avril 2004
Statut
Membre
Dernière intervention
8 mars 2005
-
Messages postés
6
Date d'inscription
vendredi 9 avril 2004
Statut
Membre
Dernière intervention
8 mars 2005
-
Bonjour,
Je suis on ne peut plus novice en PHP, grâce à des tutoriaux j'ai pu créer un formulaire dans une interface flash me permettant de récupérer des renseignements lambda (nom, prénom, adresse...) par e-mail. Tout ceci via un script PHP présent sur mon serveur. Jusque là tout va bien. J'ai juste un problème au niveau du formatage du nom de famille récupéré, dès l'instant où celui-ci contient des caractères accentués. Je ne sais comment modifier mon script pour corriger ce problème ou pour passer le champ "Nom" en majuscule. Toute aide d'experts en la matière sera la bienvenue.

Voici le script en question :


<?php


$nom=$HTTP_POST_VARS['nom'];
$mail=$HTTP_POST_VARS['mail'];
$destinataire="mon-e-mail";
$sujet=$HTTP_POST_VARS['sujet'];
$message=$HTTP_POST_VARS['message'];
$message.="

";
$message.=$tel;
$message.="

";
$message.=$adr;
$message.="
";
$message.=$codepost;
$message.="
";
$message.=$ville;
$message.="

";
$message.=$pays;


function decoder($texte){
$texte = utf8_decode($texte);
$texte = stripslashes($texte);
$texte = trim($texte);
$texte = htmlentities($texte, ENT_QUOTES);
$texte = strip_tags($texte);
$texte = nl2br($texte);
$texte = str_replace("&gt;", ">", $texte);
$texte = str_replace("&lt;", "<", $texte);
return $texte;
}



$sujet = decoder($sujet);
$message = decoder($message);



$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: $nom <$mail>\r\n";


$mail_OK=mail($destinataire, $sujet, $message, $headers) ;


if ($mail_OK) {
echo "resultat=Envoi effectué";
} else {
echo "resultat=Probleme lors de l'envoi";
}


?>

9 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Change l'affichage des caractères dans ton navigateur, met "ISO-8859-1"



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
Bonsoir,

Alors deja essaye ca :

<?php



$nom = $HTTP_POST_VARS['nom'];

$mail = $HTTP_POST_VARS['mail'];

$destinataire = "mon-e-mail";

$sujet = $HTTP_POST_VARS['sujet'];

$message = $HTTP_POST_VARS['message'], '

', $tel, '

', $adr, '
', $codepost, '
', $ville, '

', $pays;



function decoder($texte) {

return nl2br(strip_tags(htmlentities(trim(stripslashes(utf8_decode($texte))))));

}



$sujet = decoder($sujet);

$message = decoder($message);





$headers = "MIME-Version: 1.0\r\n";

$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

$headers .= "From: " . $nom . " <" . $mail . ">\r\n";



$mail_OK = mail($destinataire, $sujet, $message, $headers) ;



if ($mail_OK) {

echo "resultat : Envoi effectué";

} else {

echo "resultat : Probleme lors de l'envoi";

}



?>

Cela devrait supprimer tes problemes.

Et pour le nom :

echo ucwords($nom); // La premiere lettre

echo strtoupper($nom); // Toutes les lettres



<hr size="2" width="100%">Si ma reponse te convient, merci de l'accepté !
Messages postés
6
Date d'inscription
vendredi 9 avril 2004
Statut
Membre
Dernière intervention
8 mars 2005

Merci jojo,
J'accepte bien volontiers ta réponse, cependant j'ai remplacé mon script par le tien et cela ne fonctionne plus. Le mail n'est plus envoyé. Par ailleurs j'ai essayé d'introduire la modification pour obtenir le nom en majuscule, et rien n'y fait j'obtiens des "é" à la place des "é". M'est avis que je dois mal m'y prendre, en fait je ne sais pas exactement à quel endroit je dois placer le code...
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
Re,

oups :

$message = $HTTP_POST_VARS['message'], '

', $tel, '

', $adr, '
', $codepost, '
', $ville, '

', $pays;


devient

$message = $HTTP_POST_VARS['message'] . '

'
.
$tel
.
'

'
.
$adr
.
'
'
.
$codepost
.
'
'
.
$ville
.
'

'
.
$pays;

Voila

Sinon pour le nom :

$headers .= "From: " .
strtoupper($nom)
. " <" . $mail . ">\r\n";

Ou


$headers .= "From: " .


ucwords($nom)

. " <" . $mail . ">\r\n";


<hr size="2" width="100%">Si ma reponse te convient, merci de l'accepté !
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,



remplace les $HTTP_POST_VARS par $_POST



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
6
Date d'inscription
vendredi 9 avril 2004
Statut
Membre
Dernière intervention
8 mars 2005

Arf !

Merci à vous deux, l'envoi se passe correctement, le passage du nom en majuscule itou. Mais cela ne résout pas mon problème d'accent, j'avais la naïveté de penser qu'en forçant le champ "nom" à s'afficher en majuscule cela évacuerait les accents, que nenni! Majuscule ou pas les "é" s'affichent de cette manière "é". Auriez vous un ultime conseil à ce sujet ?
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
Euh, la je ne sais pas. Dsl

<hr size="2" width="100%">Si ma reponse te convient, merci de l'accepté !
Messages postés
6
Date d'inscription
vendredi 9 avril 2004
Statut
Membre
Dernière intervention
8 mars 2005

AAARGGHH
Ta réponse ne me convient pas du tout, mais bon ben je l'accepte...difficilement !
merci quand même
Messages postés
6
Date d'inscription
vendredi 9 avril 2004
Statut
Membre
Dernière intervention
8 mars 2005

Je n'ai accès qu'au codage Europe occidentale (ISO). Je valide ?

C'est dur d'être un baudet...