Formulaire contact - Caractères spéciaux
Résolu
ronisonmez
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
animostab Messages postés 2829 Date d'inscription Statut Membre Dernière intervention -
animostab Messages postés 2829 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis nouveau sur le site et j'ai un problème à régler.
Enfaite quand je remplis mon formulaire contact, lors de la réception des réponses du formulaire, les caractères spéciaux ne s'affichent pas correctement.
Je sais pas comment faire, j'ai jeté un coup d'oeil sur les plusieurs sites et j'ai fais qq'essaie mais ça marche toujours pas.
Vous pouvez m'aider SVP?
Merci d'avance
Voici mon code code PHP:
Je suis nouveau sur le site et j'ai un problème à régler.
Enfaite quand je remplis mon formulaire contact, lors de la réception des réponses du formulaire, les caractères spéciaux ne s'affichent pas correctement.
Je sais pas comment faire, j'ai jeté un coup d'oeil sur les plusieurs sites et j'ai fais qq'essaie mais ça marche toujours pas.
Vous pouvez m'aider SVP?
Merci d'avance
Voici mon code code PHP:
<?php /* |-------------------------------------------------------------------------- | Settings |-------------------------------------------------------------------------- / define("EMAIL" , "xxxx@gmail.com"); define("SUBJECT" , "Demande d'information"); define("NAME_MSG" , "Merci de saisir votre nom"); define("EMAIL_MSG" , "Merci de saisir votre email"); define("EMAIL_WRONG" , "Merci de saisir une adresse email valide"); define("PHONE_MSG" , "Merci de saisir votre numéro de téléphone"); define("MESSAGE_MSG" , "Merci de saisir votre message"); /* |-------------------------------------------------------------------------- | Simple Sender Script |-------------------------------------------------------------------------- / if( $_POST ) { /* check mandatory fields */ if( empty( $_POST['name'] ) ) { exit( NAME_MSG ); } if( empty( $_POST['email'] ) ) { exit( EMAIL_MSG ); } if( empty( $_POST['phone'] ) ) { exit( PHONE_MSG ); } if( empty( $_POST['message'] ) ) { exit( MESSAGE_MSG ); } /* validate email */ if ( !empty( $_POST['email']) && !preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/', $_POST['email'])) { exit( EMAIL_WRONG ); } /* create body message */ $message = ''; // Name $message.= 'Nom : ' . $_POST['name'] . ''; // Phone $message.= 'Téléphone : ' . $_POST['phone'] . ''; // Message $message.= 'Message : ' . $_POST['message'] . ''; /* send email */ $email = mail( EMAIL , SUBJECT , $message , "From: ".$_POST['name']." <".$_POST['email'].">\r\n" ."Reply-To: ".$_POST['email']."\r\n" ); /* callback for ajax */ if( $email ) { echo 'OK'; } else { echo 'ERROR'; } } ?>
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Formulaire contact - Caractères spéciaux
- Whatsapp formulaire opposition - Guide
- Caractère spéciaux - Guide
- Caractères spéciaux - Guide
- Caractères spéciaux mac - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
2 réponses
salut
le problème vient de ce que tu n'a pas mis le header
Content-Type: text/html; charset="utf-8"'."\n";
si ton site est en utf-8
ou
Content-Type: text/html; charset=\"iso-8859-1\";
si ton site est en iso-8859-1
voir aussi la fonction php htmlentities qui converti les caractères spéciaux d'une chaine en entitées html
http://www.lephpfacile.com/manuel-php/function.htmlentities.php
N'oublie pas non plus fonction php stripslash() qui retire les anti slash d'échappement
et la fonction trim() a utiliser sur l'email (trim enlève les espaces en début et fin de chaine)
voila un peu de doc
https://a-pellegrini.developpez.com/tutoriels/php/mail/
Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
le problème vient de ce que tu n'a pas mis le header
Content-Type: text/html; charset="utf-8"'."\n";
si ton site est en utf-8
ou
Content-Type: text/html; charset=\"iso-8859-1\";
si ton site est en iso-8859-1
voir aussi la fonction php htmlentities qui converti les caractères spéciaux d'une chaine en entitées html
http://www.lephpfacile.com/manuel-php/function.htmlentities.php
N'oublie pas non plus fonction php stripslash() qui retire les anti slash d'échappement
et la fonction trim() a utiliser sur l'email (trim enlève les espaces en début et fin de chaine)
voila un peu de doc
https://a-pellegrini.developpez.com/tutoriels/php/mail/
Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
Merci pour ta réponse animostab.
Enfaîte mon site est en HTML5. Je sais pas il faut où insérer le code "Content-Type: text/html; charset="utf-8"'."\n"; "
Tu peux dire où il faut exactement il faut l’intégrer ?
Enfaîte mon site est en HTML5. Je sais pas il faut où insérer le code "Content-Type: text/html; charset="utf-8"'."\n"; "
Tu peux dire où il faut exactement il faut l’intégrer ?
apres ."Reply-To: ".$_POST['email']."\r\n"
va voir le lien que j'ai mis "un peu de doc"
en fait tu devrais mettre tes headers en variable comme tu l'as fait avec $message
ce serait mieux
un exemple
voila en gros
va voir le lien que j'ai mis "un peu de doc"
en fait tu devrais mettre tes headers en variable comme tu l'as fait avec $message
ce serait mieux
un exemple
$to = 'tonemail@tonsite.com'; $email_expediteur = $email; //mail expediateur $subject = 'formulaire'; //sujet du message $name = trim($_POST['name']); $headers = 'From: "'.$name.'" <'.$email.'>'."\n"; $headers .= 'Return-Path: <'.$email.'>'."\n"; $headers .= 'MIME-Version: 1.0'."\n"; $headers .='Content-Type: text/html; charset="utf-8"'."\n"; //ici tes variables $message mail($to, $subject, $message, $headers);
voila en gros