Hello tout le monde,
Dans le cadre de la création d'un site, j'ai besoin de créer un formulaire de contact mail.
Le problème réside justement la dedans...
Depuis le début, j'utilise Webpack afin de profiter des optimisations qu'il procure au code : merge des fichiers, require(), extraire css, minification, optimisation image, cache,...
En utilisant VueJS, je m'assure de bien valider le formulaire avec VeeValidate, et une fois que c'est bon, je lance le script suivant :
validateBeforeSubmit() {
this.$validator.validateAll().then((result) => {
if (result) {
let message = this.input5 + "\n\n" + "Nom - " +
this.input1 + "\t Téléphone - " + this.input3;
let data = {
email : this.input2,
message : message,
subject : this.input4
};
$.ajax({
type: "POST",
url: "sendmailer.php",
data: data,
success: function(){
alert('email envoyé');
}
});
return false;
}
});
}
Voici le script php qui permet d'envoyer le mail :
<?php
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$headers = 'FROM: '.$email;
mail('info@test.com', $subject, $message, $headers);
Visiblement webpack ne veut pas entendre parler de php, du coup j'ai besoin de votre aide pour contourner ce souci qui me tracasse depuis 2 jours maintenant.
Merci d'avance !
Assez normal, webpack n'intègre pas de serveur PHP, donc il ne peut rien pour toi.
Il faut que tu t'installes un serveur local, via Docker par exemple (ou Vagrant, ou en utilisant le PHP de ton OS)
Comment on peut utiliser Vuejs, webpack et ne pas comprend comment fonctionne le php. VueJs s'exécute au sur le navigateur, celui-ci ne peut pas envoyer un email et webpack tu peux le voir comme un task manager, donc c'est toi qui l'exécute, mais ne fait rien lors de l'appel d'une page ou autre. Pour l'envoi d'un email, il te faut une machine avec php installer dessus par exemple (RUBY, nodejs, etc.) sur une machine et il faudra que tu demandes à la machine d'exécuter ton script (script php que tu as mis) a chaque fois que quelqu'un fera un submit de ton formulaire. Je sais que je viens de t'expliquer ça de façon un comme si je te prends pour un con, mais en ce moment je rencontre pas mal de personne qui ne connaisse pas la base du web. (Oui la back fait partie des bases du web, pas le js).
Je comprends ton désarroi...
J'aurais bien fait ça en NodeJS, et là j'aurais su ce que je devais faire, mais le site est hosté sur OVH, qui ne supporte que le PHP, sauf si serveur dédié, etc mais c'est plus cher. J'ai su cela au dernier moment, du coup, j'ai du me rabattre sur la solution PHP, mais je n'ai jamais touché à ce dernier (c'est peut être honteux, mais je ne m'en cache pas). Par conséquent, je suis un peu perdu.