Envoi automatique du mail

Résolu/Fermé
fifidibosco Messages postés 72 Date d'inscription mercredi 2 décembre 2015 Statut Membre Dernière intervention 17 juillet 2023 - Modifié le 6 sept. 2017 à 14:43
fifidibosco Messages postés 72 Date d'inscription mercredi 2 décembre 2015 Statut Membre Dernière intervention 17 juillet 2023 - 6 sept. 2017 à 20:43
Bonjour,

j'ai fait un formulaire de contact pour mon site dont voici le code :

<?php

//if (isset($_POST['submit'])) {

//récupération des variables
$nom=htmlspecialchars($_POST['nom']);
$prenom=htmlspecialchars($_POST['prenom']);
$email=htmlspecialchars($_POST['email']);
$sujet=htmlspecialchars($_POST['sujet']);
$message=htmlspecialchars($_POST['message']);


//Déclaration du mail au format texte
$corps .= "De : ".$prenom." ".$nom."\n <br>";
$corps .= "E-mail : ".$email."\n\n";
$corps .= "Objet : ".$sujet."\n\n";
$corps .= "Message : ".$message."\n\n";

//à quoi ça ressemble
/*echo $corps."\n <br>" ;
echo $nom."\n <br>" ;
echo $from."\n <br>" ;
echo $sujet."\n <br>" ;
echo $message."\n <br>" ;*/

//envoi du mail
if (mail("monadresse@gmail.com","Contact ERI",$corps))
{
echo "<script type=\"text/javascript\"> alert(\"Votre message a correctement été envoyé\"); window.location = formcontact.php;</script>";
}
else
{
echo "<script type=\"text/javascript\"> alert(\"Une erreur c'est produite lors de l'envoi de l'email.\"); </script>";
}
//}
?>


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>FormContact</title>
</head>

<body>

<table width=500px align=center bgcolor=#ececec style="border-left:solid 1px navy; padding:0 20px 5px 20px;box-shadow:2px 5px 10px;">
<tr>
<td align=justify>
<form method="post" action="">
<p>
<!-- <label for="subject">Objet : </label> -->
<input type="hidden" name="subject" value="Contact ERI" />
</p>
<p>
<label for="nom">Nom :</label><br>
<input type="text" name="nom" id="nom" placeholder="Obligatoire" size="40" />
</p>
<p>
<label for="prenom">Prénom :</label><br>
<input type="text" name="prenom" id="prenom" placeholder="Obligatoire" size="40" />
</p>
<p>
<label for="sujet">Sujet :</label><br>
<input type="text" name="sujet" id="sujet" placeholder="Obligatoire" size="40" />
</p>
<p>
<label for="email">E-mail :</label><br>
<input type="email" name="email" id="email" placeholder="Obligatoire" size="40" />
</p>
<p>
<label for="message">Votre message :</label><br />
<textarea name="message" id="message" placeholder="Obligatoire" style="width:450px; height:200px;"></textarea>
</p>
<input type="submit" value="Envoyer" style="width:100px;" />
<input type="reset" value="Reset" style="width:100px;" />
</form>
</td>
</tr>
</table>

</body>
</html>



Tel-quel il envoie correctement les mails sauf qu'à l'ouverture du formulaire il envoie automatiquement un message vide.
Si je "décommente" la première ligne : "if(isse($_.........." le formulaire n'envoie plus aucun mail.
Comment faire pour que le mail ne parte qu'au click sur le bouton "Envoyer" et plus à l'ouverture du formulaire.
Par avance merci,
Fifi



A voir également:

3 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
6 sept. 2017 à 15:10
Salut,

Décommente la ligne if (isset($_POST['submit'])).

Bonne journée,
1
Facile,

décommentes le //if (isset($_POST['submit'])) { et l'accolade fermante qui s'y rattache. Puis dans l'html tu ajoutes :

<input type="hidden" name="submit"/>

Et voilà, ça marche !

0
fifidibosco Messages postés 72 Date d'inscription mercredi 2 décembre 2015 Statut Membre Dernière intervention 17 juillet 2023
6 sept. 2017 à 20:43
Bonsoir
et merci pour vos réponses.
Ca fonctionne maintenant. Evidemment faire une condition sur quelque chose qui n'existe pas ça ne risquait pas de fonctionner
fifi
0