Envoi checkbox par mail dans formulaire php
Résolu
frugi
Messages postés
53
Date d'inscription
Statut
Membre
Dernière intervention
-
frugi Messages postés 53 Date d'inscription Statut Membre Dernière intervention -
frugi Messages postés 53 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un formulaire avec des cases à remplir et des checkbox. Voici le code HTML:
Et voici mon code php qui envoi les réponses du formulaire par mail à mon adresse et à l'adresse mail rentrée dans le formulaire:
Tout s'envoie correctement par mail... mais je ne sais pas comment faire en sorte que les checkbox cochées soient elles aussi envoyées par mail...
Ajouter
Comment faire?
Bonne fin de journée!
J'ai un formulaire avec des cases à remplir et des checkbox. Voici le code HTML:
<form id="contact" method="post" action="formmail_coques.php"> <fieldset><legend>Vos coordonnées :</legend> <p><label for="nom">Nom :</label><input type="text" id="nom" name="nom" tabindex="1" /></p> <p><label for="email">Email :</label><input type="text" id="email" name="email" tabindex="2" /></p> </fieldset> <fieldset><legend>Choix couleur :</legend> <input type="checkbox" name="couleur[]" value="Blanc"> Blanc <input type="checkbox" name="couleur[]" value="Jaune"> Jaune <input type="checkbox" name="couleur[]" value="Rose clair"> Rose clair <input type="checkbox" name="couleur[]" value="violet">Violet <input type="checkbox" name="couleur[]" value="rouge">Rouge <input type="checkbox" name="couleur[]" value="rose foncé">Rose foncé <input type="checkbox" name="couleur[]" value="noir">Noir <input type="checkbox" name="couleur[]" value="bleu clair">Bleu clair <input type="checkbox" name="couleur[]" value="bleu foncé">Bleu foncé <input type="checkbox" name="couleur[]" value="vert">Vert </fieldset> <fieldset><legend>Votre message :</legend> <p><label for="objet">Objet :</label><input type="text" id="objet" name="objet" tabindex="3" /></p> <p><label for="message">Message :</label><textarea id="message" name="message" tabindex="4" cols="30" rows="8"></textarea></p> </fieldset> <div style="text-align:center;"><input type="submit" name="envoi" value="Réserver" /></div> </form>
Et voici mon code php qui envoi les réponses du formulaire par mail à mon adresse et à l'adresse mail rentrée dans le formulaire:
<?php $destinataire = 'monadresse@live.fr'; $copie = 'oui'; // 'oui' ou 'non' $message_envoye = "Votre message nous est bien parvenu !"; $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP."; $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.html\">envoyer le formulaire</a>."; $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur."; if (!isset($_POST['envoi'])) { echo '<p>'.$message_erreur_formulaire.'</p>'."\n"; } else { function Rec($text) { $text = trim($text); if (1 === get_magic_quotes_gpc()) { $stripslashes = create_function('$txt', 'return stripslashes($txt);'); } else { $stripslashes = create_function('$txt', 'return $txt;'); } $text = $stripslashes($text); $text = htmlspecialchars($text, ENT_QUOTES); $text = nl2br($text); return $text; }; function IsEmail($email) { $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$"; return (eregi($pattern,$email)) ? true : false; }; $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; $email = (isset($_POST['email'])) ? Rec($_POST['email']) : ''; $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : ''; $message = (isset($_POST['message'])) ? Rec($_POST['message']) : ''; $email = (IsEmail($email)) ? $email : ''; if (($nom != '') && ($email != '') && ($objet != '') && ($message != '')) { $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n"; if ($copie == 'oui') { $cible = $destinataire.','.$email; } else { $cible = $destinataire; }; $message = str_replace("'","'",$message); $message = str_replace("'","'",$message); $message = str_replace(""",'"',$message); $message = str_replace('<br>','',$message); $message = str_replace('<br />','',$message); $message = str_replace("<","<",$message); $message = str_replace(">",">",$message); $message = str_replace("&","&",$message); if (mail($cible, $objet, $message, $headers)) { echo '<p>'.$message_envoye.'</p>'."\n"; } else { echo '<p>'.$message_non_envoye.'</p>'."\n"; }; } else { echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n"; }; }; // fin du if (!isset($_POST['envoi'])) ?>
Tout s'envoie correctement par mail... mais je ne sais pas comment faire en sorte que les checkbox cochées soient elles aussi envoyées par mail...
Ajouter
$couleur = (isset($_POST['couleur'])) ? Rec($_POST['couleur']) : '';ne fonctionne pas...
Comment faire?
Bonne fin de journée!
A voir également:
- Envoi checkbox par mail dans formulaire php
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Programmer envoi mail gmail - Guide
- Envoi mail cci - Guide
- Publipostage mail - Accueil - Word
6 réponses
Salut,
Normal que sa marche pas. $_POST['couleur'] est un tableau.
Le 1er element coché est donc dans $_POST['couleur'][0], le 2eme dans $_POST['couleur'][1], etc....
Il te suffit de connaitre le nombre de case coche et de bouclé dessus pour tout ajouté dans le contenu de ton mail
Bon courage
Normal que sa marche pas. $_POST['couleur'] est un tableau.
Le 1er element coché est donc dans $_POST['couleur'][0], le 2eme dans $_POST['couleur'][1], etc....
Il te suffit de connaitre le nombre de case coche et de bouclé dessus pour tout ajouté dans le contenu de ton mail
Bon courage
merci Camuke... mais... je fais ça comment? xD
c'est la 1ère fois que j'utilise du PHP oO
un truc dans le genre:
??
c'est la 1ère fois que j'utilise du PHP oO
un truc dans le genre:
if(isset($_POST["couleur"])) { for ($i=0;$i<count($_POST["couleur"]);$i++) { echo $_POST["informations"][$i]." "; } }
??
Oui c'est sa je pense.
Je t'ai fait un bout de code qui ressemble fort:
Je t'ai fait un bout de code qui ressemble fort:
<?php $message= ""; if(isset($_POST['couleur'])) { $couleur = $_POST['couleur']; for($i=0; $i < count($couleur); $i++) { $message = $message." ".$couleur[$i]; } } echo $message; ?>
Et j'insère ça à quel endroit dans mon php?
Il manque qqch non, pour que ça l'envoie par mail? "echo" ne sert qu'a afficher non?
Il manque qqch non, pour que ça l'envoie par mail? "echo" ne sert qu'a afficher non?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui echo ne sert qu'a afficher mais je t'ai fait que la boucle, je pensais que tu pourrai l'inserer tout seul.
Voila une partie de ton code:
tu insere sa en dessous:
Voila une partie de ton code:
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; $email = (isset($_POST['email'])) ? Rec($_POST['email']) : ''; $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : ''; $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
tu insere sa en dessous:
if(isset($_POST['couleur'])) { $couleur = $_POST['couleur']; for($i=0; $i < count($couleur); $i++) { $message = $message." ".$couleur[$i]; } }