Caractères accentués dans les Messages d'un Formulaire

Fermé
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 - 4 mars 2017 à 13:28
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 6 mars 2017 à 17:53
Bonjour,


J'ai un fichier .php en relation avec un formulaire contenu dans une des pages de mon site web, la relation entre le deux marche très bien, les données du formulaire me sont envoyées sur mon adresse e-mail.
Toutefois un petit hic, les messages de la zone textarea ne respectent pas les caractères accentués (é, à, è, î, etc...)
Mes recherches m'amènent sur des CHARSET et autres UTF-8, mais mon problème, ne connaissant RIEN en PHP, si quelqu'un pourrait me dire comment compléter mon fichier .php... MERCI TOUT PLEIN !

<?php
// Fichier "adminis.php"
// On vérifie d'abord si le formulaire a été envoyé en s'assurant
// que la variable $_POST contient bien une entrée 'valid'
if (isset($_POST['valid'])) {
     
    // Liste de toutes les variables obligatoires du formulaire
    $aVars = array('nom','prenom','email','message');
     
    // Les tests de validité pour le e-mail
    $aTests = array('email'=> '#\w+[-_.]?\w+?@\w+[-_.]?\w+?\.[a-z]{2,5}#');
 
    // Variable pour savoir s'il y a des erreurs dans les infos fournies
    $bErreur = false;
     
    // On boucle sur chaque variable obligatoire du formulaire
    foreach ($aVars as $var) {
        // On test pour savoir si la variable est vide
        $bErreur = (bool)(empty($_POST[$var]));
 
        // On test la validité de l'info fournie
        if (isset($aTests[$var])) { $bErreur = (bool)(!preg_match($aTests[$var], $_POST[$var])); }
 
        // Si une erreur a été détectée, alors on rédirige vers la page d'erreur
        // et on arrête le script
        if ($bErreur) {
            header("Location: erreur.html");
            exit();
 
        }
    }
     
    // Si aucune erreur n'a été détectée, alors on construit le message à envoyer
	$sMessage = "Message envoyé le ".date('d/m/Y')." à ".date('H:i')."\r\n";
	$sMessage .= "Identité : ".$_POST['nom']." ".$_POST['prenom']."\r\n";
	$sMessage .= "E-mail : ".$_POST['email']."\r\n";
	$sMessage .= "Message : "."\r\n\r\n--\r\n\r\n";
	$sMessage .= $_POST['message']."\r\n\r\n--\r\n\r\n";
	     
    // Objet du mail
    $sObjet = 'Inscription sur le formulaire';
     
    // Adresse e-mail de
    $sEmail = '[moi]@free.fr'; // Adresse à personnaliser
  
    // Envoi du message
     
    mail($sEmail, $sObjet, $sMessage);

    // On retourne à la page du formulaire
    header("Location: membres.html");
}
?>
A voir également:

8 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
4 mars 2017 à 13:58
Bonjour,
Tout est là : https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8 ( le même lien que celui que je t'ai donné hier... qu'il faut lire entièrement cette fois :-) )
0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44
4 mars 2017 à 14:12
Bonjour Jordane,
je suis allé voir ton lien, mais dur dur pour moi quand même.
J'ai trouvé "header('content-type: text/html; charset=iso-8859-1');"
mais comment le placer dans mon php, je ne connais pas la syntaxe...
avec des accolades ouvrantes, fermatnes, etc... ??
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
4 mars 2017 à 14:13
J'ai trouvé "header('content-type: text/html; charset=iso-8859-1');"

et au lieu de : iso-8859-1 ... si tu essayais, comme le préconise mon lien., utf-8 ?
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
4 mars 2017 à 14:14
0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44
4 mars 2017 à 15:06
j'ai rajouté 2 lignes $headers
mais maintenant j'ai un mess d'erreur sur la dernière ligne
sur header("Location: membres.html");

// Envoi du message
     
    mail($sEmail, $sObjet, $sMessage);
    $headers .='Content-Type: text/plain; charset="utf-8"'." ";
    $headers .='Content-Transfer-Encoding: 8bit';

    // On retourne à la page du formulaire
    header("Location: membres.html");
}
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
4 mars 2017 à 15:28
bonjour, pourquoi ne partages-tu pas le message d'erreur?
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
Modifié par yg_be le 4/03/2017 à 15:37
suggestion:
    $headers ='Content-Type: text/plain; charset=utf-8; ';
    $headers .='Content-Transfer-Encoding: 8bit';
    mail($sEmail, $sObjet, $sMessage, $headers);
0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44 > yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
4 mars 2017 à 16:03
Avec les 2 $headers au-dessus, je nai plus de message d'erreur, mais le mail n'arrive pas dans la BAL
0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44 > lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017
4 mars 2017 à 16:22
En fait, je pense que c'est Free dans ses pages perso qui patinent avec mon php.
J'ai réessayé avec ma page php qui fonctionnait hier, avec les caractères accentués non reconnus, et ça ne marche plus non plus.
Je vais revoir cela lundi :-)
Et je te souhaite un bon Weekend, et encore merci de ta patience :-)
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
4 mars 2017 à 16:30
Normalement tu peux utiliser ma petite fonction :
function Envoi_Mail($to,$sujet,$message='') {
  // Creation de l'entete du mail a envoyer
  // --------------------------------------
 $from = 'emailfrom<emailfrom@tonsite.fr>';
 $cc = NULL; //pour mettre un destinataire en copie si tu le souhaites

  $boundary = md5(uniqid(microtime(), TRUE));
  $headers = "From: $from\r\n"; // FROM ...
   if($cc){
    $headers .= "Cc: $cc\n"; // copie carbone
   }
  $headers .= 'Mime-Version: 1.0'."\r\n";
  $headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
  $headers .= "\r\n";

  // Creation du message a envoyer
  // -----------------------------
  $msg  =
  '--' . $boundary . "\r\n" .
  'Content-type: text/html; charset=utf-8' . "\r\n\r\n
  <html>
   <body>      
    $message
   </body>
  </html>\r\n";

  // Envoi du mail
  // -------------
  return mail($to, $sujet, $msg, $headers);
 } 

et pour l'utiliser :
// tu remplaces :
//   mail($sEmail, $sObjet, $sMessage);
//   header("Location: membres.html");
// par :
if( Envoi_Mail($sEmail,$sObjet, $sMessage) ){
   header("Location: membres.html");
}

0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44
4 mars 2017 à 17:33
Voilà j'ai transformé mon fichier php comme ci-dessous
j'obtiens une erreur sur la ligne 5

Parse error: syntax error, unexpected T_IF in /mnt/171/sdb/d/2/reflexologie.hana/adminis.php on line 5

<?php>
// Fichier "adminis.php"
// On vérifie d'abord si le formulaire a été envoyé en s'assurant
// que la variable $_POST contient bien une entrée 'valid'
if (isset($_POST['valid'])) {
     
    // Liste de toutes les variables obligatoires du formulaire
    $aVars = array('nom','prenom','email','message');
     
    // Les tests de validité pour le e-mail
    $aTests = array('email'=> '#\w+[-_.]?\w+?@\w+[-_.]?\w+?\.[a-z]{2,5}#');
 
    // Variable pour savoir s'il y a des erreurs dans les infos fournies
    $bErreur = false;
     
    // On boucle sur chaque variable obligatoire du formulaire
    foreach ($aVars as $var) {
        // On test pour savoir si la variable est vide
        $bErreur = (bool)(empty($_POST[$var]));
 
        // On test la validité de l'info fournie
        if (isset($aTests[$var])) { $bErreur = (bool)(!preg_match($aTests[$var], $_POST[$var])); }
 
        // Si une erreur a été détectée, alors on rédirige vers la page d'erreur
        // et on arrête le script
        if ($bErreur) {
            header("Location: erreur.html");
            exit();
 
        }
    }
     
    // Si aucune erreur n'a été détectée, alors on construit le message à envoyer
	$sMessage = "Message envoyé le ".date('d/m/Y')." à ".date('H:i')."\r\n";
	$sMessage .= "Identité : ".$_POST['nom']." ".$_POST['prenom']."\r\n";
	$sMessage .= "E-mail : ".$_POST['email']."\r\n";
	$sMessage .= "Message : "."\r\n\r\n--\r\n\r\n";
	$sMessage .= $_POST['message']."\r\n\r\n--\r\n\r\n";
	
	$headers .='Content-Type: text/html; charset="utf-8"'."\n";
     
    // Objet du mail
    $sObjet = 'Inscription sur le formulaire';
     
    // Adresse e-mail de destination
    $sEmail = '[moi]@free.fr'; // Adresse à personnaliser
    
    //La nouvelle fonction de Jordane
    
  	function Envoi_Mail($to,$sujet,$message='') {
  	// Creation de l'entete du mail a envoyer
  	// --------------------------------------
 	$from = 'emailfrom<emailfrom@[monsite.fr]>';
 	$cc = NULL; //pour mettre un destinataire en copie si tu le souhaites

  	$boundary = md5(uniqid(microtime(), TRUE));
  	$headers = "From: $from\r\n"; // FROM ...
   if($cc){
    $headers .= "Cc: $cc\n"; // copie carbone
   	}
  	$headers .= 'Mime-Version: 1.0'."\r\n";
  	$headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
  	$headers .= "\r\n";

  	// Creation du message a envoyer
  	// -----------------------------
  	$msg  =
  	'--' . $boundary . "\r\n" .
  	'Content-type: text/html; charset=utf-8' . "\r\n\r\n
  	<html>
   	<body>      
    $message
   	</body>
  	</html>\r\n";

  	// Envoi du mail
  	// -------------
  	return mail($to, $sujet, $msg, $headers);
 	} 
    // Envoi du message
     
    if( Envoi_Mail($sEmail,$sObjet, $sMessage) ) {
   	header("Location: membres.html");
	}
?>
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
4 mars 2017 à 18:07
il y a un > en trop ligne 1.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
4 mars 2017 à 18:33
Au passage ...
Place les codes de FONCTIONS (comme celle que je t'ai donné....) en dehors de ton code php (soit avant ... soit carrément dans un autre fichier que tu n'auras qu'à inclure lorsque tu en as besoin....)

Autre petite chose... prend l'habitude de récupérer PROPEMENT tes variables AVANT de les utiliser.
Typiquement .. tu ne devrais pas avoir de code comme ça :
$sMessage .= "Identité : ".$_POST['nom']." 


Mais plutôt :

=> au début de ton script :
  //récupération propre des variables
$nom = !empty($_POST['nom']) ? $_POST['nom'] : '';


puis dans ton code
$sMessage .= "Identité : $nom "; 
0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44 > yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
4 mars 2017 à 19:32
oui d'accord... maintenant il me donne une erreur sur la fermeture ?>

Parse error: syntax error, unexpected $end in /mnt/171/sdb/d/2/reflexologie.hana/adminis.php on line 85
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477 > lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017
4 mars 2017 à 19:36
je pense qu'il manque tout à la fin une accolade fermante, pour terminer
if (isset($_POST['valid'])) {
0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
4 mars 2017 à 19:54
Je suis désolé, je sais que tu n'es pas là pour faire le travail à ma place :-)
Mais je ne connais RIEN du tout en php, donc ce que tu me dis là, pour moi c'est du mandarin... la syntaxe, mettre une chose avant ou après, ou inclure depuis un autre fichier, c'est du chinois aussi... Vraiment désolé !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
4 mars 2017 à 20:58
Testes ça : (et inspire t'en pour tes prochains codes.... )
<?php
/* Fichier "adminis.php" */

//-----------------------------------------------------------//
// Affichage des erreurs php
//-----------------------------------------------------------//
error_reporting(E_ALL);
ini_set("display-errors","on");

//-----------------------------------------------------------//
// FONCTIONS
//-----------------------------------------------------------//
function Envoi_Mail($to,$sujet,$message='') {
  // Creation de l'entete du mail a envoyer
  $from = 'emailfrom<emailfrom@[monsite.fr]>'; // variable pour le FROM
  $cc = NULL; //pour mettre un destinataire en copie si tu le souhaites

  $boundary = md5(uniqid(microtime(), TRUE));
  $headers = "From: $from\r\n"; // FROM ...
  if($cc){
    $headers .= "Cc: $cc\n"; // copie carbone
  }
  $headers .= 'Mime-Version: 1.0'."\r\n";
  $headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
  $headers .= "\r\n";

  // Creation du message a envoyer
  $msg  =
  '--' . $boundary . "\r\n" .
  'Content-type: text/html; charset=utf-8' . "\r\n\r\n
  <html>
  <body>      
  $message
  </body>
  </html>\r\n";

  // Envoi du mail
  return mail($to, $sujet, $msg, $headers);
} 

//-----------------------------------------------------------//
// récupération "propre" des variables AVANT de les utiliser
//-----------------------------------------------------------//
$nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL;
$prenom = !empty($_POST['prenom']) ? $_POST['prenom'] : NULL;
$email = !empty($_POST['email']) ? $_POST['email'] : NULL;
$message = !empty($_POST['message']) ? $_POST['message'] : NULL;

// Les tests de validité pour le e-mail
$aTests = array('email'=> '#\w+[-_.]?\w+?@\w+[-_.]?\w+?\.[a-z]{2,5}#');
$bError = false;
$bError = (bool)(!preg_match($aTests['email'], $email);

//-----------------------------------------------------------//
//traitement du submit
//-----------------------------------------------------------//
if ($nom && $prenom && $email && $message && !$bError ) {
   // Si aucune erreur n'a été détectée et que tous les champs sont remplis...
   //alors on construit le message à envoyer
	 $sMessage = "Message envoyé le ".date('d/m/Y')." à ".date('H:i')."\r\n";
	 $sMessage .= "Identité : $nom $prenom \r\n";
	 $sMessage .= "E-mail : $email \r\n";
	 $sMessage .= "Message : "."\r\n\r\n--\r\n\r\n";
	 $sMessage .= $message . "\r\n\r\n--\r\n\r\n";
	   
    // Objet du mail
    $sObjet = 'Inscription sur le formulaire';
     
    // Adresse e-mail de destination
    $sEmail = '[moi]@free.fr'; // Adresse à personnaliser
  
  // Envoi du message     
  if(Envoi_Mail($sEmail,$sObjet, $sMessage)) {
   	header("Location: membres.html");
    exit();
	}else{
     echo "Erreur lors de l'envoie du mail ! ";
     //$bError = true;
  }  
       
}else{
  $bError = true;
}

if ($bErreur) {
  header("Location: erreur.html");
  exit();
}     
  
?>

0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44
5 mars 2017 à 10:20
Bonjour, c'est vraiment gentil !!
il y avait juste une erreur dans une ligne, il manquait une parenthèse fermante
$bError = (bool)(!preg_match($aTests['email'], $email);

J'ai testé, je ne reçois pas le mail quand je remplis mon formulaire depuis mon Mac,
j'ai essayé depuis mon iphone, j'ai reçu le mail (caractères accentués NON reconnus),
mais ça n'a marché qu'une fois, comme si LES machines reconnaissaient que le formulaire a déjà été rempli par moi. Il faudra que j'essaie depuis un autre Mac ou un autre PC avec un IP différent.
Et puis je vais laisser "reposer" le phph, re-essayer demain...
A bientôt...
Alain
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
Modifié par yg_be le 5/03/2017 à 10:59
Il me semble que le test de validité de l'email, ('#\w+[-_.]?\w+?@\w+[-_.]?\w+?\.[a-z]{2,5}#'), est excessivement restrictif.
0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44
6 mars 2017 à 09:33
Bonjour
j'espère que vous êtes bien reposés :-)
Je pense effectivement qu'il y a des problèmes qq part entre les accolades ouvrantes et fermantes... et je suis incapable de savoir où...
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
Modifié par yg_be le 6/03/2017 à 12:01
0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44 > yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
6 mars 2017 à 12:11
Bonjour,
c'est un lien vers un peu plus haut dans cette page,
mais je connais rien en php, j'en suis désolé.
Je suis toujours sur le dernier code php de Jordane du samedi 4 mars à 20h58,
avec une parenthèse fermante qui manquait (enfin je crois) ( voir ma réponse du 5 mars à 10h20).
Mais il me semble surtout qu'il y a des problèmes dans les { et } qui manquent ou bien sont mal placées ?? (je crois, toujours...)
Si tu peux re-jeter un oeil dessus...
Merci tout plein !!
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017
6 mars 2017 à 12:51
... avec mon code .... tu as un message d'erreur ???
Sinon... comment sais-tu que ça ne marche pas ??
Pourrais tu être plus précis ....
0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
6 mars 2017 à 13:31
En fait, ce matin, il ne me donne plus de message d'erreur, mails le mail ne parvient pas à destination...
Que dois-je exactement écrir dans
 // Creation de l'entete du mail a envoyer
  emailfrom<emailfrom@[monsite.fr]>'; // variable pour le FROM
0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
6 mars 2017 à 13:37
Je vois aussi une accolade fermante dans
 // Envoi du mail
  return mail($to, $sujet, $msg, $headers);
} 

qui n'a pas d'ouvrante avant ?
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
6 mars 2017 à 14:08
J'ai procédé à quelques modifications.
peux tu tester ?
<?php
/* Fichier "adminis.php" */

//-----------------------------------------------------------//
// Affichage des erreurs php
//-----------------------------------------------------------//
error_reporting(E_ALL);
ini_set("display-errors","on");

//-----------------------------------------------------------//
// FONCTIONS
//-----------------------------------------------------------//
function Envoi_Mail($to,$sujet,$message='') {
  // Creation de l'entete du mail a envoyer
  $from = 'emailfrom<emailfrom@[monsite.fr]>'; // variable pour le FROM
  $cc = NULL; //pour mettre un destinataire en copie si tu le souhaites

  $boundary = md5(uniqid(microtime(), TRUE));
  $headers = "From: $from\r\n"; // FROM ...
  if($cc){
    $headers .= "Cc: $cc\n"; // copie carbone
  }
  $headers .= 'Mime-Version: 1.0'."\r\n";
  $headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
  $headers .= "\r\n";

  // Creation du message a envoyer
  $msg  =
  '--' . $boundary . "\r\n" .
  'Content-type: text/html; charset=utf-8' . "\r\n\r\n
  <html>
  <body>      
  $message
  </body>
  </html>\r\n";

  // Envoi du mail
  return mail($to, $sujet, $msg, $headers);
} 

//-----------------------------------------------------------//
// récupération "propre" des variables AVANT de les utiliser
//-----------------------------------------------------------//
$nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL;
$prenom = !empty($_POST['prenom']) ? $_POST['prenom'] : NULL;
$email = !empty($_POST['email']) ? $_POST['email'] : NULL;
$message = !empty($_POST['message']) ? $_POST['message'] : NULL;

// Les tests de validité pour le e-mail
$aTests = array('email'=> '#\w+[-_.]?\w+?@\w+[-_.]?\w+?\.[a-z]{2,5}#');
$bError = false;
$error=array();
if(!preg_match($aTests['email'], $email)){
   $bError = true;
   $error[] = "Erreur dans l'adresse mail";
}


//-----------------------------------------------------------//
//traitement du submit
//-----------------------------------------------------------//
if ($nom && $prenom && $email && $message && !$bError ) {
   // Si aucune erreur n'a été détectée et que tous les champs sont remplis...
   //alors on construit le message à envoyer
	 $sMessage = "Message envoyé le ".date('d/m/Y')." à ".date('H:i')."\r\n";
	 $sMessage .= "Identité : $nom $prenom \r\n";
	 $sMessage .= "E-mail : $email \r\n";
	 $sMessage .= "Message : "."\r\n\r\n--\r\n\r\n";
	 $sMessage .= $message . "\r\n\r\n--\r\n\r\n";
	   
    // Objet du mail
    $sObjet = 'Inscription sur le formulaire';
     
    // Adresse e-mail de destination
    $sEmail = '[moi]@free.fr'; // Adresse à personnaliser
  
  // Envoi du message     
  if(Envoi_Mail($sEmail,$sObjet, $sMessage)) {
   	header("Location: membres.html");
    exit();
	}else{
     $error[] = "Erreur lors de l'envoie du mail ! ";
     $bError = true;
  }  
       
}else{
  $error[] = "Au moins un des champs n'est pas rempli ou conforme ...";
  $bError = true;
}

if($bErreur) {
  echo "/!\ Il y a une (ou des) erreur(s)  /!\ ";
  if(!empty($error)){
    foreach($error as $Err){
      echo $Err;
    }  
  }
  /* mise en commentaire le temps des tests
  header("Location: erreur.html");
  exit();
  */
  
}     
  
?>


NB: Il n'y avait aucun souci d'accolade dans mon code ....
La réflexion de yg_be était pour ton précédent code !!
0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44
6 mars 2017 à 14:28
J'ai testé, je n'ai pas de mess d'erreur php, mais le mail ne parvient toujours pas à destination... :-)
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017
6 mars 2017 à 14:37
Tu testes en local ou tu héberges ta page sur un serveur ?
Si sur un serveur ... lequel ?

et puis.. tu as changé le FROM ?
 $from = 'emailfrom<emailfrom@[monsite.fr]>';

En y mettant ... ben ton adresse mail par exemple ....

Tu as aussi regardé dans les SPAM pour voir si le mail n'était pas classé dedans automatiquement ??
0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
6 mars 2017 à 14:59
à chaque fois j'héberge ma page modifiée en ftp sur le serveur de Free (pages perso)
dans le FROM je mets
$from = 'emailfrom<INSCRIPTION-FORM>'; // variable pour le FROM

et je mets bien mon adresse e-mail dans // Adresse e-mail de destination.
Et je n'ai rien dans les spams...
Aussi quand je teste sous safari je vide le cache, avant de me brancher online sur le site internet contenant le FORM de base...
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017
6 mars 2017 à 15:01
tu es chez free ?
Le souci peut venir de là ....
Il me semble que c'est assez compliqué chez eux .....
http://les.pages.perso.chez.free.fr/l-art-d-envoyer-des-mails-depuis-les-pp-de-free.io
0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
6 mars 2017 à 15:13
Oui je vais étudier cette page, déjà j'ai vu
La valeur du From: doit être l'email du compte depuis lequel est envoyé l'email

Je vais essayer cela, et puis je te dirai... Merci déjà, merci beaucoup pour tout :-)
0
lalain67000 Messages postés 92 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 44
6 mars 2017 à 17:28
En fait, j'ai bien reçu un e-mail, mais j'ai fait tellement d'essais que le serveur de mail de Free pages perso s'est senti spamé, et il refuse d'envoyer dans ces cas là.
Je vais essayer de trouver un autre solution, comme écrire les données d'un FORMulaire dans un fichier texte.txt,
comme le fait mon autre script pour écrire les IP des visiteurs...

En tout cas, je te remercie beaucoup beaucoup pour ta patience avec moi, c'est vraiment génial pour les gens comme moi qui n'y connaissent rien.

Comment fait-on pour mettre le sujet en RÉSOLU ?? Merci...
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
6 mars 2017 à 17:53
Et pourquoi ne pas stocker les infos en Base de données ???... ça serait plus propre :-)
0