Formulaire de contact ET envoie de mail

Fermé
caro - 7 avril 2010 à 15:08
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 - 7 avril 2010 à 17:43
salut a tous,
j'ai un formulaire d'envoie de mail tout simple avec une case a cocher.

ma page html:

<form name="contact" method="post" action="mail.php">
<table border="0">
<tr>
<td>Nom et Prénom (*)</td>
<td>
<input type="text" name="nom"/></td>
</tr>
<tr>
<td>E-mail (*)</td>
<td>
<input type="text" name="email"/></td>
</tr>
<tr>
<td>
Cochez la case pour commander le catalogue des pièces
</td>
<td> <input type="checkbox" name="choix" value="oui">
</td>
</tr>
<tr>
<td>Entrez votre message (*)</td>
<td><textarea name="message" cols="70" rows="10"></textarea></td>
</tr>

</table>
<br />

<input type ="submit" value="Envoyer"/>
<input type="reset" value=" Annuler "/>
</form>
<br/>

(*) les champs marqués sont obligatoires.


et ma page mail.php:
<?php
if (isset($_POST) && isset($_POST['nom']) && isset($_POST['choix']) && isset($_POST['email'])&& isset($_POST['message']))
{
extract ($_POST);
//vérifier si la variable n'est pas vide
if(! empty ($nom) && !empty ($choix) && !empty ($email)&& !empty ($message) &&!empty($_POST["choix"]))
{
//fonction mail
$message= str_replace("\'","'",$message);
$destinataire="mon mail@gmail.com";
$sujet="Formulaire de contact";
$mes="Une demande est arrivée\n
Nom: $nom \n
Catalogue: $choix \n
E-mail : $email \n
Message: $message";
$entete="from: $nom \n
Reply-to: $email";
mail($destinataire, $sujet, $mes,$entete);

echo "Le mail à bien était envoyé";
}
//si les champs ne sont pas remplis

else
{


echo "Vous n'avez pas rempli tous les champs, votre mail ne pourra pas être envoyé si tous les champs ne sont pas rempli.";
}
}

?>

mon seul souci c'est que je n'arrive pas a récupérer les données de ma checkbox.
je m'explique si je la coche le message est envoyé et si je la coche pas rien de ne s'affiche alors que sa devrai marqué que le message a quand même était envoyé.

cocher cette case n'est pas obligatoire et je veux que le mail parte quand même mais aussi que si d'autres cases ne sont pas remplis que cela l'affiche.(dans le 2ème echo)

je ne sais pas si vous me suivez...

j'ai besoin de votre aide...
merci d'avance


A voir également:

3 réponses

avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
7 avril 2010 à 17:06
Dans ton premier if, retires "&& isset($_POST['choix'])"
Dans le second, retires "&&!empty($_POST["choix"])"

Quand une case est cochées, sa variable vaut par défaut "on"
Quand elle ne l'est pas, sa variable n'existe pas.
if(isset($_POST['choix']))
    echo 'la case est cochée';
else
    echo 'la case n\'est pas cochée';
0
j'ai retirer tout ce que tu m'avais dit.

le seul problème c'est que du coup j'ai une erreur:

Notice: Undefined variable: choix in C:\Program Files (x86)\EasyPHP5.3.0\www\Nouveau dossier\mail.php on line 44

est-ce que du coup en haut de ma page php je mette une définition de variable

$choix= $_POST['choix']

pour que sa la récupère dans mon formulaire et que sa se retrouve dans ma fonction mail?
0
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
7 avril 2010 à 17:43
$choix = (isset($_POST['choix'])) ? 'oui' : 'non';
echo 'Recevoir catalogue : '.$choix;
0