Envoyer un mail depuis un formulaire de contact

Résolu
Dnartreb -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous,
J'ai créer un formulaire de contact en HTML et tout une partie en PHP pour envoyer un mail... J'avais réussi mais cela ne me convenait pas donc j'ai recommencé et maintenant je bloque.
Je vous mets mon code ci-dessous, si vous savez jeter un coup d’œil et me dire mes éventuelles erreurs; ça m'aiderais beaucoup!
Remarque: Je traite tout sur la même page.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Nous contacter</title>
</head>
  
<body>
  <br>
    
<form method="post" action="guillaume.php">
    <label for="name">Nom:</label>
    <input type="text" name="name" id="name" required placeholder="Nom" />
     
    <label for="subject">Objet Du Message:</label>
    <input type="text" name="subject" id="subject" required placeholder="Sujet" />
     
    <label for="email">Email:</label>
    <input type="email" name="email" id="email" required placeholder="***@***" />
     
    <label for="message">Message:</label>
    <textarea name="message" id="message" required></textarea>
     
  	<div style="margin-left: 29%;"class="boutton">
    <input type="submit" value="Envoyer votre message" />
  </div>
</form>  
  
  
  <?php
	$destinataire = 'b.guillaume***@hotmail.com';
	$expediteur = $_POST['email'];	
	$objet = $_POST['subject'];
	$headers .= 'To: '.$destinataire."\n"; // Mail de reponse
	$headers .= 'From: '.$expediteur.''."\n"; // Expediteur
	$message1 = 	"L'auteur du mail est:".$_POST['name'].;
	$message2 = 	'Voici son mail:'.$_POST['message'].;
	
 	if(mail($destinataire, $objet, $message1, $message2, $headers))
	{
		echo '<script languag="javascript" >alert("Votre message a bien été envoyé ");</script>';
	}
	else // Non envoyé
	{
		echo '<script languag="javascript">alert("Votre message n\'a pas pu être envoyé");</script>';
	}
	header('Location: guillaume.php');
?>  
</body>    
</html>


Je souhaite recevoir un mail avec le nom, l'email, le message que la personne a renseigné dans le formulaire. A ce stade, quand je clique sur le bouton pour envoyer le message, j'ai cette erreur:
Parse error: syntax error, unexpected ';' in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/contacter/guillaume.php on line 73
(La ligne 73, correspond à la ligne: $message1 = "L'auteur du mail est:".$_POST['name'].;)

Merci d'avance pour vos idées, vos aides, vos conseils... :)
Configuration: Windows / Firefox 65.0
A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
essaye ça
  <?php
 $destinataire = 'b.guillaume***@hotmail.com';
 $expediteur = !empty($_POST['email']) ? $_POST['email'] : NULL; 
  $objet = !empty($_POST['subject']) ? $_POST['subject'] : '',
  $name = !empty($_POST['name']) ? $_POST['name'] : '',
  $message = !empty($_POST['message']) ? $_POST['message'] : '';
  
  
  if(!empty($expediteur) && !empty($objet)){ // si l'utilisateur a saisi des infos...
    //----------- headers -------------//
    $headers = "MIME-Version: 1.0 \r\n";
    $headers .= 'To: '.$destinataire."\n"; // Mail de reponse
    $headers .= "From: \"$expediteur\"<$expediteur>"."\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset: utf8\r\n";

    //------- message --------------------//
    $message1 =  "L'auteur du mail est: ".htmlspecialchars($name);
    $message2 =  'Voici son mail: '.htmlspecialchars$message);
      
    $msgHtml = "<html>
    <body>
      <div>
       ".$message1."
      </div>
      <div>
       <pre>
       ".$message2."
      </pre>
      </div>
    </body>
    </html>";  
   
    //- ---------- Envoie du mail  --------------// 
    if(mail($destinataire, $objet, $msgHtml, $headers)){
      echo '<script languag="javascript" >alert("Votre message a bien été envoyé ");</script>';
      header('Location: guillaume.php');
      exit();
    } else {// Non envoyé
      echo '<script languag="javascript">alert("Votre message n\'a pas pu être envoyé");</script>';
    }
  
 }
?> 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Nous contacter</title>
</head> 
<body>
  <br>
 
  <form method="post" action="">
    <label for="name">Nom:</label>
    <input type="text" name="name" id="name" required placeholder="Nom" value="<?php echo $name;?>"/>
     
    <label for="subject">Objet Du Message:</label>
    <input type="text" name="subject" id="subject" required placeholder="Sujet" value="<?php echo $objet;?>"/>
     
    <label for="email">Email:</label>
    <input type="email" name="email" id="email" required placeholder="***@***"  value="<?php echo $expediteur;?>"/>
     
    <label for="message">Message:</label>
    <textarea name="message" id="message" required>"<?php echo $message;?>"</textarea>
     
   <div style="margin-left: 29%;"class="boutton">
      <input type="submit" value="Envoyer votre message" />
    </div>
  </form>  
</body>    
</html>


Tu noteras au passage que tu avais des points en trop à la fin des lignes
$message1 =  "L'auteur du mail est:".$_POST['name'].;
 $message2 =  'Voici son mail:'.$_POST['message'].;


1
Gui4671 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
 
Merci, cela fonctionne...
Je n'ai plus qu'à le comprendre pour le futur! Encore merci et passe une bonne soirée :)
0
Fanou_ezechiel Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
S'il vous, j'ai essayer votre code de réponse mais la ligne où j'ai écrire :
$msgHtml =<html> me met erreur.
Que faire
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Fanou_ezechiel Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Petiy oubli de parenthèse a la ligne d'au dessus
$message2 =  'Voici son mail: '.htmlspecialchars($message);
      

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour
Commence par ça
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Tu verras apparaître une erreur (au niveau de ta variable headers)
0
Gui4671 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai mis le code pour les erreurs trouvés sur ton lien mais quand je tente d'envoyer un message j'ai toujours la même erreur... J'ai modifié deux autres lignes également.

Comment ça je vais avoir voir apparaitre une erreur pour la variable headers? C'est une partie que j'ai copiée sur internet...

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Nous contacter</title>
 
</head>
  
<body>
  <br>
    
<form method="post" action="guillaume.php">
    <label for="name">Nom:</label>
    <input type="text" name="name" id="name" required placeholder="Nom" />
     
    <label for="subject">Objet Du Message:</label>
    <input type="text" name="subject" id="subject" required placeholder="Sujet" />
     
    <label for="email">Email:</label>
    <input type="email" name="email" id="email" required placeholder="email@exemple.com" />
     
    <label for="message">Message:</label>
    <textarea name="message" id="message" required></textarea>
     
  	<div style="margin-left: 29%;"class="boutton">
    <input type="submit" value="Envoyer votre message" />
  </div>
</form>  
  
  
  <?php
	$destinataire = 'b.guillaume***@hotmail.com';
	$expediteur = !empty($_POST['email']) ? $_POST['email'] : NULL;	
	$objet = !empty($_POST['sbject']) ? $_POST['subjet'] : NULL;
	$headers .= 'To: '.$destinataire."\n"; // Mail de reponse
	$headers .= 'From: '.$expediteur.''."\n"; // Expediteur
	$message1 = 	"L'auteur du mail est:".$_POST['name'].;
	$message2 = 	'Voici son mail:'.$_POST['message'].;
	
 	if(mail($destinataire, $objet, $message1, $message2, $headers))
	{
		echo '<script languag="javascript" >alert("Votre message a bien été envoyé ");</script>';
	}
	else // Non envoyé
	{
		echo '<script languag="javascript">alert("Votre message n\'a pas pu être envoyé");</script>';
	}
	header('Location: guillaume.php');
?>
  
</body>    
</html>
0