j'ai créer un formulaire en HTML avec un fichier complémentaire .php
Ce que je veux
il faudrait que quand je clique sur envoyer cela envoi un mail et que le formulaire se vide vu que c'est envoyé
Ce que j'obtiens
le formulaire a la forme, je le met en ligne, mais quand je fais le test, quand je clqiue sur le bouton envoyer, rien ne se passe.
code utilisé :
html :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Formulaire de Contact</title>
</head>
<body>
<h2>Formulaire de Contact</h2>
<form action="send_email.php" method="POST">
<label for="name">Nom :</label><br>
<input type="text" id="name" name="name" required><br><br>
<label for="email">Email :</label><br>
<input type="email" id="email" name="email" required><br><br>
<label for="message">Message :</label><br>
<textarea id="message" name="message" rows="4" cols="50" required></textarea><br><br>
<button type="submit">Envoyer</button>
</form>
</body>
</html>
le fichier contact.php :
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Récupérer les données du formulaire
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$message = htmlspecialchars($_POST['message']);
// Destinataire
$to = "toto@toto.fr";
// Sujet de l'email
$subject = "Nouveau message de contact de $name";
// Contenu de l'email
$body = "Nom: $name\n";
$body .= "Email: $email\n\n";
$body .= "Message:\n$message\n";
// En-têtes de l'email
$headers = "From: $email" . "\r\n" .
"Reply-To: $email" . "\r\n" .
"X-Mailer: PHP/" . phpversion();
// Envoyer l'email
if (mail($to, $subject, $body, $headers)) {
echo "Votre message a été envoyé avec succès.";
} else {
echo "Une erreur est survenue lors de l'envoi de votre message.";
}
}
?>
quand je clique sur envoyer rien ne se passe
merci de votre réponse, j'ai modifié, mais cela ne change pas le problème, c'est toujours pareil quand je clmique sur envoyer rien ne se passe du tout
Le site est bien hébergé en ligne et pas en local pour le test ?
La fonction mail() est bien activée chez l'hébergeur ?
Le courrier arrive t'il dans les spam ?...
Un tuto qui peut vous aider :
https://www.hostinger.fr/tutoriels/php-mail
bonjour, oui je suis hebergé sur OVH
je l'ajoute a mon site internet qui est dessus.
quand je fait mon message et que j'envoi cette fois ca fat comme ci ça avait envoyé car ça efface bien tout le formulaire il devient vide, mais je ne reçois rien et je n'ai aucun message d'erreur.
commen,t je peux voir sur OVH si la fonction mail est activé ?
Il suffit d'envoyer un fichier test.php sur ton serveur avec dedans :
<?php
phpinfo();
?>
Ensuite tu peux y accéder par : adresse-de-ton-site/test et voir si les directives "sendmail_from" ou "sendmail_path" sont biens définies et qu'il n'y a pas écrit "disable" ou autre chose du genre.
Par exemple moi j'ai ça :
sendmail_from me@localhost.com me@localhost.com
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
C'est fonctionnel mais le mieux est d'y associer une vraie adresse pour ne pas être rejeté directement ou arriver dans les spams...
penser à utiliser le site "mail-tester.com" pour verifier que vos mails ne sont pas détruit avant d'arriver dans la boite mail.