Remplacer les ? par les accents approprié
Résolu
Lucryio
Messages postés
206
Date d'inscription
Statut
Membre
Dernière intervention
-
Lucryio Messages postés 206 Date d'inscription Statut Membre Dernière intervention -
Lucryio Messages postés 206 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je viens vers vous car sur mon site, j'ai un formulaire de contact qui envoye un mail dans ma boite de messagerie SAUF que j'ai des points d'interrogation à la place des accents et j'aimerais que les accents s'affiche à la place des ? .
Voici mon code :
Merci par avance pour votre aide
Cordialement Lucryio
Je viens vers vous car sur mon site, j'ai un formulaire de contact qui envoye un mail dans ma boite de messagerie SAUF que j'ai des points d'interrogation à la place des accents et j'aimerais que les accents s'affiche à la place des ? .
Voici mon code :
<?php /* Si le formulaire est envoyé alors on fait les traitements */ if (!empty(stripslashes($_POST['envoye']))) { $civilite = stripslashes($_POST['civilite']); $nom = stripslashes($_POST['nom']); $expediteur = stripslashes($_POST['email']); $sujet = stripslashes($_POST['sujet']); $message = stripslashes($_POST['message']); /* Expression régulière permettant de vérifier si le * format d'une adresse e-mail est correct */ $regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i'; /* Expression régulière permettant de vérifier qu'aucun * en-tête n'est inséré dans nos champs */ $regex_head = '/[\n\r]/'; /* Si le formulaire n'est pas posté de notre site on renvoie * vers la page d'accueil */ /* On vérifie que tous les champs sont remplis */ if (empty($nom) || empty($expediteur) || empty($sujet) || empty($message)) { $alert = 'Tous les champs doivent être renseignés'; } /* On vérifie que le format de l'e-mail est correct */ elseif (!preg_match($regex_mail, $expediteur)) { $alert = 'L\'adresse '.$expediteur.' n\'est pas valide'; } /* On vérifie qu'il n'y a aucun header dans les champs */ elseif (preg_match($regex_head, $expediteur) || preg_match($regex_head, $nom) || preg_match($regex_head, $sujet)) { $alert = 'En-têtes interdites dans les champs du formulaire'; } /* Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail */ elseif (!!empty($_COOKIE['sent'])) { /* Destinataire (votre adresse e-mail) */ $to = 'mon adresse mail'; /* Construction du message */ $msg = 'Bonjour,'."\r\n\r\n"; $msg .= 'Ce mail a été envoyé depuis mon site web par '.$nom."\r\n\r\n"; $msg .= 'Voici le message qui vous est adressé :'."\r\n"; $msg .= '***************************'."\r\n"; $msg .= $message."\r\n"; $msg .= '***************************'."\r\n"; /* En-têtes de l'e-mail */ $headers = 'From: '.$nom.' <'.$expediteur.'>'."\r\n\r\n"; /* Envoi de l'e-mail */ if (mail($to, utf8_decode($sujet), utf8_decode($msg), $headers)) { $alert = 'E-mail envoyé avec succès'; /* On détruit la variable $_POST */ unset($_POST); } else { $alert = 'Erreur d\'envoi de l\'e-mail'; } } /* Cas où le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */ else { unset($_POST); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="fr"> <head> <title>Contactez moi</title> <meta http-equiv="content-type" content="text/html;charset=utf-8(sans BOM)" /> </head> <body> <?php if (!empty($alert)) { echo '<p style="color:red">'.$alert.'</p>'; } ?> <form action="" method="post"> <p> <label for="nom">Pseudo :</label> <input type="text" id="nom" name="nom" value="<?php echo 'pseudo du membre';?>" readonly="readonly" /> </p> <p> <label for="email">E-mail :</label> <input type="text" id="email" name="email" value="<?php $mailmembre = $bdd->query("selection de ma table pour recuperer le pseudo du membre")->Fetch(); echo 'mail du membre';?>" readonly="readonly"/> </p> <p> <label for="sujet">Titre du message :</label> <input type="text" id="sujet" name="sujet" placeholder="Mettre le titre" /> </p> <p> <label for="message">Message :</label> <textarea id="message" name="message" cols="40" rows="4"></textarea> </p> <p> <input type="submit" name="envoye" value="Envoyer" /> </p> </form> </body> </html>
Merci par avance pour votre aide
Cordialement Lucryio
A voir également:
- Point d'interrogation à la place des lettres gmail
- Remplacer disque dur par ssd - Guide
- Remplacer par word - Guide
- Notepad++ remplacer par saut de ligne ✓ - Forum Bureautique
- Remplacer coco - Accueil - Réseaux sociaux
- Quel site pour remplacer coco - Accueil - Réseaux sociaux
2 réponses
Bonjour,
C'est un souci d'encodage.
Le mieux serait de passer en UTF8.
Regarde déjà ça : http://www.webtolosa.com/2010/03/26/envoyer-un-mail-au-format-texte-sans-erreurs-d-encodage/
Puis ça :
https://forums.commentcamarche.net/forum/affich-34415194-caracteres-accentues-dans-les-messages-d-un-formulaire#13
C'est un souci d'encodage.
Le mieux serait de passer en UTF8.
Regarde déjà ça : http://www.webtolosa.com/2010/03/26/envoyer-un-mail-au-format-texte-sans-erreurs-d-encodage/
Puis ça :
https://forums.commentcamarche.net/forum/affich-34415194-caracteres-accentues-dans-les-messages-d-un-formulaire#13
regarde bien le premier lien que je t'ai donné