Inserer UTF-8 dans un formulaire php
Résolu/Fermé
A voir également:
- Php post utf8
- Easy php - Télécharger - Divers Web & Internet
- Post it windows - Télécharger - Agendas & Calendriers
- Brouillon post instagram - Guide
- Supprimer musique post instagram ✓ - Forum Instagram
- Code post - Télécharger - Vie quotidienne
8 réponses
Bonjour à tous
Je reviens pour donner la solution pour encoder un formulaire en UTF-8
Car apparemment je ne suis pas al seule à avoir eu ce soucis sans pouvoir trouver une solution... Enfin presque.
J'ai donc reconstruit tout le code php de mon formulaire et pour une première de "finalisation" j'en suis plutôt fière :-)
Voilà ! ca servira à beaucoup je pense...
Je reviens pour donner la solution pour encoder un formulaire en UTF-8
Car apparemment je ne suis pas al seule à avoir eu ce soucis sans pouvoir trouver une solution... Enfin presque.
J'ai donc reconstruit tout le code php de mon formulaire et pour une première de "finalisation" j'en suis plutôt fière :-)
<?php define('MAIL_DESTINATAIRE','mon adresse@domaine.fr'); define('MAIL_SUJET','Demande de renseignement(s)'); if(!empty($_POST)){ extract($_POST); $valid = true; if (empty($_POST['nom'])){ $valid=false; $erreurnom="Vous n'avez pas rempli votre Nom"; } if (empty($_POST['prenom'])){ $valid=false; $erreurprenom="Vous n'avez pas rempli votre Prénom"; } if (empty($_POST['adresse'])){ $valid=false; $erreuradresse="Vous n'avez pas rempli votre Adresse"; } if (empty($_POST['postal'])){ $valid=false; $erreurpostal="Vous n'avez pas rempli votre Code postal"; } if (empty($_POST['ville'])){ $valid=false; $erreurville="Vous n'avez pas rempli votre Ville"; } if (empty($_POST['email'])){ $valid=false; $erreuremail="Vous n'avez pas rempli votre Email"; } if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$email)){ $valid=false; $erreuremail="Votre Email n'est pas valide"; } if(empty($email)){ $valid=false; $erreuremail="Vous n'avez pas rempli votre Email"; } if (empty($_POST['type'])){ $valid=false; $erreurtype="Vous n'avez pas rempli le Type"; } if (empty($_POST['palier'])){ $valid=false; $erreurpalier="Vous n'avez pas rempli le champ Palier"; } if (empty($_POST['escalier'])){ $valid=false; $erreurescalier="Vous n'avez pas rempli l'Escalier actuel"; } if (empty($_POST['escaliers'])){ $valid=false; $erreurescaliers="Vous n'avez pas rempli le type d'Escalier"; } if (empty($_POST['emplacement'])){ $valid=false; $erreuremplacement="Vous n'avez pas rempli l'Emplacement"; } if (empty($_POST['age'])){ $valid=false; $erreurage="Vous n'avez pas rempli l'Age de votre escalier"; } if (empty($_POST['nombre'])){ $valid=false; $erreurnombre="Vous n'avez pas rempli le Nombre de marche"; } if($valid){ $mail_entete = "MIME-Version: 1.0\r\n"; $mail_entete .= "From: {$_POST['nom']} " ."<{$_POST['email']}>\r\n"; $mail_entete .= 'Reply-To: '.$_POST['email']."\r\n"; $mail_entete .= 'Content-Type: text/plain; charset="utf-8"'; $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n"; $mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n"; // préparation du corps du mail $mail_corps = "Nom : $nom\n"; $mail_corps .= "Prénom : $prenom\n"; $mail_corps .= "Adresse : $adresse, $postal $ville\n"; $mail_corps .= "Tél. Mobile : $mobile\n"; $mail_corps .= "Tél. Domicile : $domicile\n"; $mail_corps .= "Email : $email\n"; $mail_corps .= "Message : $message\n"; $mail_corps = "Type : $type\n"; $mail_corps .= "Palier : $palier\n"; $mail_corps .= "Escalier actuel : $escalier\n"; $mail_corps .= "Si autre matière : $matiere\n"; $mail_corps .= "Forme de l'escalier : $escaliers\n"; $mail_corps .= "Emplacement : $emplacement\n"; $mail_corps .= "Age de l'escalier : $age\n"; $mail_corps .= "Nombre de marche : $nombre\n"; // envoi du mail if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) { //Le mail est bien expédié - nettoyage des entrées $erreur = "Votre message nous a bien été transmis"; unset($nom); unset($prenom); unset($adresse); unset($postal); unset($ville); unset($mobile); unset($domicile); unset($email); unset($message); unset($matiere); unset($age); unset($nombre); } else{ $erreur = "Une erreur est survenue, votre message n'est pas parti"; } } } ?>
Voilà ! ca servira à beaucoup je pense...
En ajoutant une entête comme ça :
$header ='Content-Type: text/plain; charset="UTF-8"\r\n';
$header.='From: expediteur@escaliers-style.fr';
mail("destinataire@escaliers-style.fr","TitreDuMessage","Tonmessage",$header);
ça devrait aller
$header ='Content-Type: text/plain; charset="UTF-8"\r\n';
$header.='From: expediteur@escaliers-style.fr';
mail("destinataire@escaliers-style.fr","TitreDuMessage","Tonmessage",$header);
ça devrait aller
Merci pour la réponse, mais ca ne fonctionne pas et voici un exemple de message reçu:
Dans l'exemple juste le champ message est rempli.
Nom : Prénom : Adresse : Ville : Tél: Domicile : Tél: Mobile : Email : Message : après blabla éèà @// Type: Escalier actuel: Matière : Escalier: Palier: Emplacement: Age escalier : Nombre de marches :
Dans l'exemple juste le champ message est rempli.
Il faut vérifier 2 choses :
1) Dans le header de ta page il doit y avoir :
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
2) La page qui contient ton formulaire doit être encodée en UTF-8
(à faire avec ton éditeur)
Un conseil : pour récupérer les valeurs $_POST utilises cette syntaxe
$msg=trim(nl2br(stripslashes($_POST['msg'])));
1) Dans le header de ta page il doit y avoir :
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
2) La page qui contient ton formulaire doit être encodée en UTF-8
(à faire avec ton éditeur)
Un conseil : pour récupérer les valeurs $_POST utilises cette syntaxe
$msg=trim(nl2br(stripslashes($_POST['msg'])));
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
oui mes pages sont en UTF-8
C'est à dire pour :
$msg=trim(nl2br(stripslashes($_POST['msg'])));
pour récupérer tous les champs non, prénom.......
Mais là il faut m'expliquer en reprenant mon code parce que comme tu l'as vu je suis encore au "NIVEAU" brut ! :-)
Je n'ai pas encore la finesse des "finitions"
Merci pur ton aide bestpostmaster
C'est à dire pour :
$msg=trim(nl2br(stripslashes($_POST['msg'])));
pour récupérer tous les champs non, prénom.......
Mais là il faut m'expliquer en reprenant mon code parce que comme tu l'as vu je suis encore au "NIVEAU" brut ! :-)
Je n'ai pas encore la finesse des "finitions"
Merci pur ton aide bestpostmaster
le :
trim(nl2br(stripslashes($_POST['msg'])));
est à utiliser si t'as des textarea dans ton formulaire.
(C'est pas une obligation
exemple :
$message = trim(nl2br(stripslashes($_POST['message'])));
)
La définition des fonctions trim,nl2br, stripslashes est dispo sur google.
Avec ce que je t'ai dit ça doit marcher vérifie très bien.
En tout cas avec gmail ça affiche correctement
trim(nl2br(stripslashes($_POST['msg'])));
est à utiliser si t'as des textarea dans ton formulaire.
(C'est pas une obligation
exemple :
$message = trim(nl2br(stripslashes($_POST['message'])));
)
La définition des fonctions trim,nl2br, stripslashes est dispo sur google.
Avec ce que je t'ai dit ça doit marcher vérifie très bien.
En tout cas avec gmail ça affiche correctement
bon j'ai tout essayé, mais toujours rien. j'ai mis tout le site en
Et là les emails sont intacts
Merci pour ton aide bestpostmaster.
Bonne soirée
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
Et là les emails sont intacts
Merci pour ton aide bestpostmaster.
Bonne soirée