Envoyer un mail depuis un formulaire de contact

Résolu/Fermé
Dnartreb - 19 févr. 2019 à 18:21
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 20 févr. 2019 à 13:32
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 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié le 19 févr. 2019 à 20:06
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 jeudi 24 janvier 2019 Statut Membre Dernière intervention 7 avril 2019
19 févr. 2019 à 19:51
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 mercredi 20 février 2019 Statut Membre Dernière intervention 20 février 2019
20 févr. 2019 à 12:06
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 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > Fanou_ezechiel Messages postés 4 Date d'inscription mercredi 20 février 2019 Statut Membre Dernière intervention 20 février 2019
20 févr. 2019 à 13:32
Petiy oubli de parenthèse a la ligne d'au dessus
$message2 =  'Voici son mail: '.htmlspecialchars($message);
      

0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
19 févr. 2019 à 19:11
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 jeudi 24 janvier 2019 Statut Membre Dernière intervention 7 avril 2019
19 févr. 2019 à 19:27
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