Problème avec les caractères spéciaux lors de l'envoi d'un form

Résolu/Fermé
ronisonmez Messages postés 10 Date d'inscription mercredi 7 septembre 2016 Statut Membre Dernière intervention 2 avril 2021 - 7 sept. 2016 à 12:57
ronisonmez Messages postés 10 Date d'inscription mercredi 7 septembre 2016 Statut Membre Dernière intervention 2 avril 2021 - 11 sept. 2016 à 21:43
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:

<?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'; }
}

?>
A voir également:

1 réponse

azerty_vs_qwerty Messages postés 196 Date d'inscription mercredi 14 janvier 2015 Statut Membre Dernière intervention 2 octobre 2016 93
7 sept. 2016 à 13:28
Ca doit venir de l'encodage.

Tu utilises bien utf-8 ?
0
ronisonmez Messages postés 10 Date d'inscription mercredi 7 septembre 2016 Statut Membre Dernière intervention 2 avril 2021
7 sept. 2016 à 13:35
tu veux dire dans le HTML ?
Voici le code HTML:

<!DOCTYPE html>
<html lang="fr">


<head>

<!-- Basic Page Needs
================================================== -->
<meta charset="utf-8">
<title>Brooklyn</title>
<meta name="description" content="">
<meta name="author" content="">
0
azerty_vs_qwerty Messages postés 196 Date d'inscription mercredi 14 janvier 2015 Statut Membre Dernière intervention 2 octobre 2016 93 > ronisonmez Messages postés 10 Date d'inscription mercredi 7 septembre 2016 Statut Membre Dernière intervention 2 avril 2021
8 sept. 2016 à 08:49
Alors ? Ca venait d'ou en fin de compte ?
0
ronisonmez Messages postés 10 Date d'inscription mercredi 7 septembre 2016 Statut Membre Dernière intervention 2 avril 2021 > azerty_vs_qwerty Messages postés 196 Date d'inscription mercredi 14 janvier 2015 Statut Membre Dernière intervention 2 octobre 2016
11 sept. 2016 à 21:43
en mettant ce code et ça marche :)

$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);
0