Menu

Envoi automatique du mail [Résolu]

fifidibosco 40 Messages postés mercredi 2 décembre 2015Date d'inscription 27 février 2018 Dernière intervention - 6 sept. 2017 à 14:40 - Dernière réponse : fifidibosco 40 Messages postés mercredi 2 décembre 2015Date d'inscription 27 février 2018 Dernière intervention
- 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



Afficher la suite 

3 réponses

Répondre au sujet
Pitet 2378 Messages postés lundi 11 février 2013Date d'inscription 2 février 2018 Dernière intervention - 6 sept. 2017 à 15:10
0
Utile
Salut,

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

Bonne journée,
Commenter la réponse de Pitet
0
Utile
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 !

Commenter la réponse de Zé
fifidibosco 40 Messages postés mercredi 2 décembre 2015Date d'inscription 27 février 2018 Dernière intervention - 6 sept. 2017 à 20:43
0
Utile
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
Commenter la réponse de fifidibosco