Le bouton "envoyer" du formulaire de contact ne marche pas

lemaitrejulia -  
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis en train de créer mon site internet en codage mais je bloque sur le formulaire de contact, quand j'appuie sur le bouton envoyer, rien ne se passe...

Si une âme charitable voulait bien vérifier mon PHP et me dire ce qui cloche ça m'aiderais vachement... Si tout va bien je devrais alors vérifier mon JS et mon HTML...

Ai-je bien rempli les champs ? $EmailTo correspond bien au mail ou je vais recevoir le formulaire ? Ou c'est un autre champ à remplir ?

Merci d'avance pour votre aide

Mon PHP :

<?php

$errorMSG = "";

// NOM
if (empty($_POST["name"])) {
$errorMSG = "Name is required ";
} else {
$name = $_POST["name"];
}

// MAIL
if (empty($_POST["email"])) {
$errorMSG .= "Email is required ";
} else {
$email = $_POST["email"];
}

// OBJET
if (empty($_POST["msg_subject"])) {
$errorMSG .= "Subject is required ";
} else {
$msg_subject = $_POST["msg_subject"];
}


// MESSAGE
if (empty($_POST["message"])) {
$errorMSG .= "Message is required ";
} else {
$message = $_POST["message"];
}


$EmailTo = "***@***";
$Subject = "New Message Received";

// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $name;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $email;
$Body .= "\n";
$Body .= "Subject: ";
$Body .= $msg_subject;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $message;
$Body .= "\n";

// send email
$success = mail($EmailTo, $Subject, $Body, "From:".$email);

// redirect to success page
if ($success && $errorMSG == ""){
echo "success";
}else{
if($errorMSG == ""){
echo "Something went wrong :(";
} else {
echo $errorMSG;
}
}

?>

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Déjà..J'ai déplacé ton message dans le forum PHP puisque c'est le langage utilisé dans ton code... merci d'y faire attention la prochaine fois.

Ensuite, lorsque tu postes du code sur le forum, tu dois le faire en utilisant les BALISES DE CODE.
Explications ( à lire entièrement !!) disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Puis.. il serait bien d'activer l'affichage des éventuelles erreurs php dans ta page.
Pour ça, je t'invite à appliquer ce qui est indiqué ici : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Tu pourrais aussi ajouter un var_dump($_POST); au début de ton code histoire de voir ce qui est renvoyé par le formulaire ... formulaire dont nous ne savons rien (tu devrais nous partage le code html de celui-ci )
Pense également à nous indiquer pour chaque code, le nom du fichier qui le contient ...( index.php .. formtruc.php... ) histoire que l'on sache à quoi correspond chaque code.


Tu dis :

j'appuie sur le bouton envoyer, rien ne se passe...

Il faut donc partir déjà du code html et JS ....
As tu utilisé une balise FORM ?
Ton bouton est du type SUBMIT ?
Ou alors tu utilises du Javascript et de l'ajax ..??

Bref, juste avec ton code php.. impossible de savoir ce qui cloche.
Surtout que ça ne peut pas venir de lui vu que tu dis que rien ne se passe... donc rien ne s'affiche ... ( à voir une fois l'activation des erreurs php si ça fait toujours pareil )

Et pour finir, il serait utile de nous indiquer si tu travailles en LOCAL sur ton ordi (si oui, avec quel logiciel pour émuler le serveur php ) ou si tu héberges ta page sur un serveur web ..


0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Bonjour,

Concernant uniquement le code php :

Le code php ne semble pas contenir d'erreur de syntaxe, néanmoins :
- il faudrait ajouter une ou plusieurs conditions pour envoyer le mail uniquement si les champs requis sont renseignés. Actuellement le mail est envoyé à chaque chargement de ce script indépendamment du fait que les paramètres requis soient vides ou non (bonjour le spam !)
- il faudrait initialiser les variables $name, $email, $msg_subject et $message pour éviter d'avoir des alertes php "undefined variable" si les paramètres post correspondant sont vides (actuellement ces variables ne sont initialisées que si les paramètres post ne sont pas vides). Mais ceci ne devrait pas empêcher le fonctionnement du script.

La variable $EmailTo, puisqu'elle est utilisée comme premier paramètre de la fonction mail(), correspond bien à l'adresse destinataire. Les autres variables semblent également être correctement utilisées.

Pour plus d'aide, merci de suivre les indications et répondre aux questions dans le premier message de jordane45.
0