Envoi automatique du mail

Résolu
fifidibosco Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   -  
fifidibosco Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   527
 
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 70 Date d'inscription   Statut Membre Dernière intervention  
 
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