Signaler

Envoi automatique du mail [Résolu]

Posez votre question fifidibosco 21Messages postés mercredi 2 décembre 2015Date d'inscription 23 septembre 2017 Dernière intervention - Dernière réponse le 6 sept. 2017 à 20:43 par fifidibosco
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



Utile
+0
plus moins
Salut,

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

Bonne journée,
Donnez votre avis
Utile
+0
plus moins
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 !

Donnez votre avis
Utile
+0
plus moins
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
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !