EDIT (#1)
Si je comprends bien, vous souhaitez tout regrouper sur une seule page et l'exécuter à partir de cette même page.
Vous pouvez utiliser le code suivant pour envoyer un courrier à partir d'une seule page, par exemple index.php
ou contact.php
La seule différence entre cette réponse et ma réponse initiale est la suivante <form action="" method="post">
lorsque l'action a été laissée en blanc.
Il est préférable d'utiliser header('Location: thank_you.php');
au lieu de echo
dans le gestionnaire PHP pour rediriger ensuite l'utilisateur vers une autre page.
Copiez l'ensemble du code ci-dessous dans un seul fichier.
<?php
if(isset($_POST['submit'])){
$to = "email@example.com"; // this is your Email address
$from = $_POST['email']; // this is the sender's Email address
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$subject = "Form submission";
$subject2 = "Copy of your form submission";
$message = $first_name . " " . $last_name . " wrote the following:" . "\n\n" . $_POST['message'];
$message2 = "Here is a copy of your message " . $first_name . "\n\n" . $_POST['message'];
$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly.";
// You can also use header('Location: thank_you.php'); to redirect to another page.
}
?>
<!DOCTYPE html>
<head>
<title>Form submission</title>
</head>
<body>
<form action="" method="post">
First Name: <input type="text" name="first_name"><br>
Last Name: <input type="text" name="last_name"><br>
Email: <input type="text" name="email"><br>
Message:<br><textarea rows="5" name="message" cols="30"></textarea><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
Réponse originale
Je n'ai pas bien compris la question, mais j'ai l'impression qu'une copie du message doit être envoyée à la personne qui a rempli le formulaire.
Voici une copie testée/fonctionnelle d'un formulaire HTML et d'un gestionnaire PHP. Ce formulaire utilise le gestionnaire PHP mail()
función.
Le gestionnaire PHP envoie également une copie du message à la personne qui a rempli le formulaire.
Vous pouvez utiliser deux barres obliques //
devant une ligne de code si vous n'avez pas l'intention de l'utiliser.
Par exemple : // $subject2 = "Copy of your form submission";
ne s'exécutera pas.
FORMULAIRE HTML :
<!DOCTYPE html>
<head>
<title>Form submission</title>
</head>
<body>
<form action="mail_handler.php" method="post">
First Name: <input type="text" name="first_name"><br>
Last Name: <input type="text" name="last_name"><br>
Email: <input type="text" name="email"><br>
Message:<br><textarea rows="5" name="message" cols="30"></textarea><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
Gestionnaire PHP (mail_handler.php)
(Utilise les informations du formulaire HTML et envoie l'e-mail)
<?php
if(isset($_POST['submit'])){
$to = "email@example.com"; // this is your Email address
$from = $_POST['email']; // this is the sender's Email address
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$subject = "Form submission";
$subject2 = "Copy of your form submission";
$message = $first_name . " " . $last_name . " wrote the following:" . "\n\n" . $_POST['message'];
$message2 = "Here is a copy of your message " . $first_name . "\n\n" . $_POST['message'];
$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly.";
// You can also use header('Location: thank_you.php'); to redirect to another page.
// You cannot use header and echo together. It's one or the other.
}
?>
Pour envoyer en HTML :
Si vous souhaitez envoyer du courrier en HTML et pour les deux instances, vous devrez créer deux ensembles distincts d'en-têtes HTML avec des noms de variables différents.
Lisez le manuel sur mail()
pour apprendre à envoyer des courriels au format HTML :
Notes de bas de page :
Vous devez spécifier l'URL du service qui traitera les données soumises, en utilisant l'attribut action.
Comme indiqué à l'adresse suivante https://www.w3.org/TR/html5/forms.html sous 4.10.1.3 Configurer un formulaire pour communiquer avec un serveur . Pour des informations complètes, consultez la page.
C'est pourquoi, action=""
ne fonctionnera pas en HTML5.
La syntaxe correcte serait la suivante :
-
action="handler.xxx"
ou
-
action="http://www.example.com/handler.xxx"
.
Il convient de noter que xxx
sera l'extension du type de fichier utilisé pour gérer le processus. Il peut s'agir d'un .php
, .cgi
, .pl
, .jsp
l'extension du fichier, etc.
Consultez les questions et réponses suivantes sur la pile en cas d'échec de l'envoi de courrier :