Bonsoir à tou(te)s,
J'ai réalisé un projet avec Argon (Bootstrap/vue.js). Il s'agit d'une SPA avec une section contact comprenant un formulaire de contact (nom, mail, message). Mon formulaire de contact, établi donc sur un fichier .vue, est importé sur mon idex.html:
Me basant sur des démonstrations de ce forum, j'ai établi un fichier index.php, supposé récupérer les données du formulaire HTML, et me les retransmettre par email. D'avances mes excuses si mon code froisse des passionnés de PHP, pour ma part je ne connais pour le moment pas du tout ce langage et ai tenté de me débrouiller en piochant sur de la documentation:
Mon souhait était que lors de la soumission, en cas de succès, un message soit ajouté spécifiant l'envoi.
J'ai une fonction Javascript qui prévient le comportement par défaut et ne recharge donc pas la page lors de la soumission.
J'ai voulu tester en local le formulaire qui semblait alors fonctionner. J'ai hier mis en ligne mon projet, et là, "c'est le drame". Lorsque je rempli les champs du formulaire et le soumet, premièrement aucun message n'est ajouté comme voulu, mais bon limite ce n'est pas ce qui m'embête le plus.
Je reçois bien un mail provenant de mon hébergeur, contenant les champs demandés ('Nom:', 'Email:', 'Message:"), mais ceux-ci sont vides.
Après moultes recherches sur le net, ne parvenant pas à trouver réponse à mon problème, je me motive à poster celui-ci, au risque de prendre des coups de bâtons si le problème, mon erreur, était simplissime .
Merci d'avance et bonnes fêtes à vous.
Edit: Je me rends compte que finalement je ne reçois pas tout a fait les mails lors de la soumission, mais plutôt de manière intempestive (3x par heure) et lorsque j'upload mon fichier php sur le serveur
Modifié par Yoji (21 Dec 2020 - 10:40)
J'ai réalisé un projet avec Argon (Bootstrap/vue.js). Il s'agit d'une SPA avec une section contact comprenant un formulaire de contact (nom, mail, message). Mon formulaire de contact, établi donc sur un fichier .vue, est importé sur mon idex.html:
<form class="needs-validation col-md-8 from-right" novalidate id="myForm" method="post" action="./index.php">
<div class="form-column">
<div>
<label for="nom">Saisissez votre nom</label>
<input type="text" class="form-control" id="nom" required placeholder="Votre nom" name="nom">
<div class="valid-feedback">
C'est noté!
</div>
<div class="invalid-feedback">
Merci de saisir votre nom.
</div>
</div>
<div>
<label for="email" class="mt-3">Saisissez votre email</label>
<input type="email" class="form-control" id="email" placeholder="Votre email" name="email" required>
<div class="valid-feedback">
C'est noté!
</div>
<div class="invalid-feedback">
Merci de saisir un email valide.
</div>
</div>
<div>
<label for="message" class="mt-3">Saisissez votre message</label>
<textarea class="form-control" id="message" placeholder="Votre message ici" name="message" required></textarea>
<div class="valid-feedback">
C'est noté!
</div>
<div class="invalid-feedback">
Merci de saisir votre message.
</div>
</div>
</div>
<button class="btn btn-primary my-5 mx-auto" type="submit">Envoyer</button>
<div id="retourenvoimessage"></div>
</form>
Me basant sur des démonstrations de ce forum, j'ai établi un fichier index.php, supposé récupérer les données du formulaire HTML, et me les retransmettre par email. D'avances mes excuses si mon code froisse des passionnés de PHP, pour ma part je ne connais pour le moment pas du tout ce langage et ai tenté de me débrouiller en piochant sur de la documentation:
<?php
$nom = $_POST['nom'];
$email = $_POST['email'];
$message = $_POST['message'];
$dest = "fer.mathieu@gmail.com";
$sujet = "Demande de contact";
$corp = "Nom : $nom\n Email : $email\n Message : $message";
$headers = "From: $nom\n Reply-To: $email";
if (mail($dest, $sujet, $corp, $headers)) {
?><script>document.querySelector('#retourenvoimessage').textContent="Message bien envoyé, merci!"</script><?php
} else {
?><script>alert("Oups, un problème est survenu lors de l'envoi du message, désolé...");document.location.href="http://monnomdedomaine/"</script><?php
}
?>
Mon souhait était que lors de la soumission, en cas de succès, un message soit ajouté spécifiant l'envoi.
J'ai une fonction Javascript qui prévient le comportement par défaut et ne recharge donc pas la page lors de la soumission.
J'ai voulu tester en local le formulaire qui semblait alors fonctionner. J'ai hier mis en ligne mon projet, et là, "c'est le drame". Lorsque je rempli les champs du formulaire et le soumet, premièrement aucun message n'est ajouté comme voulu, mais bon limite ce n'est pas ce qui m'embête le plus.
Je reçois bien un mail provenant de mon hébergeur, contenant les champs demandés ('Nom:', 'Email:', 'Message:"), mais ceux-ci sont vides.
Après moultes recherches sur le net, ne parvenant pas à trouver réponse à mon problème, je me motive à poster celui-ci, au risque de prendre des coups de bâtons si le problème, mon erreur, était simplissime .
Merci d'avance et bonnes fêtes à vous.
Edit: Je me rends compte que finalement je ne reçois pas tout a fait les mails lors de la soumission, mais plutôt de manière intempestive (3x par heure) et lorsque j'upload mon fichier php sur le serveur
Modifié par Yoji (21 Dec 2020 - 10:40)