> Tous les forums > Forum des Webmasters
 Envoi checkbox par mail dans formulaire php
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
frugi
  Posté le 19/07/2011 @ 17:15 
Aller en bas de la page 
Nouvelle astucienne

Bonjour,

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!



Modifié par frugi le 19/07/2011 18:03
Publicité
christele
 Posté le 12/09/2011 à 16:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

C'est simple, lorsque tu reçois dans ton php les POST reçois également les choix "checkés"

Tu mets alors vous avez choisi
xxxxxxxxxxxx
yyyyyyyyyyyy et
zzzzzzzzzzzz

En te basant su mon exemple que tu peus tester a part

soit: form_multi_check.php

<html><body><b>
<form method='POST' action='form_multi_check.php'>
<input type="checkbox" name="LaTbl[]" value="PHP"> PHP<br>
<input type="checkbox" name="LaTbl[]" value="Language C"> Langage C<br>
<input type="checkbox" name="LaTbl[]" value="VB"> VB<br>
<input type="checkbox" name="LaTbl[]" value="Assembleur"> Assembleur<br>
<input type="checkbox" name="LaTbl[]" value="HTML"> HTML<br>
<input type="submit" value="Soumettre">
</form>
<?PHP

if (isset($_POST["LaTbl"]))
{
echo "vous avez coche<br />";
foreach ($_POST['LaTbl'] as &$value) {
echo ("".trim($value)."<br />");
$value = $value * 2;
}

}
else { echo "pas encore de donnees<br />";}
?>
</b></body></html>

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
23,99 €Souris sans fil Microsoft Sculpt Comfort bluetooth à 23,99 €
Valable jusqu'au 27 Septembre

Amazon fait une promotion sur la souris sans fil Microsoft Sculpt Comfort bluetooth qui passe à 23,99 € au lieu de 34 €. Elégante, performante et ergonomique, cette souris sans fil Bluetooth vous offre la liberté dont vous avez besoin pour le travail et/ou le divertissement. Le ruban tactile latéral vous permettra d'accéder rapidement à vos fonctionnalités préférées de Windows (8 et 10).


> Voir l'offre
1379,99 €Acer Nitro 5 (17,3'' FHD 144Hz, Ryzen 7 5800H,16Go, SSD 1To, RTX 3070 8 Go) à 1379,99 €
Valable jusqu'au 28 Septembre

Fnac fait une belle promotion sur l'ordinateur portable Acer Aspire Nitro AN517-41-R74B qui passe à 1379,99 € au lieu de 1700 €. Ce portable dédié aux joueurs dispose d'un écran 17,3 pouces FHD 1920 x 1080 IPS 144 Hz, d'un processeur AMD Ryzen 7 5800H, de 16 Go de mémoire RAM, d'un SSD de 1 To et surtout d'une carte graphique Nvidia GeForce RTX 3070 avec 8 Go de mémoire qui vous permettra de profiter de vos jeux de manière fluide en haute résolution. Le tout tourne sous Windows 10. Le jeu Battlefield 2042 vous est également offert.


> Voir l'offre
19,99 €Tondeuse sans fil Philips MG3720/15 + 8 accessoires à 19,99 €
Valable jusqu'au 27 Septembre

Amazon fait une promotion sur la tondeuse sans fil Philips MG3720/15 qui passe à 19,99 € alors qu'on la trouve ailleurs à partir de 35 €. Cette tondeuse peut tailler et sculpter la barbe, les cheveux, ... 3 sabots cheveux (9, 12 et 16 mm), 2 sabots barbe (1 et 2 mm), sabot barbe ajustable (3 à 7 mm).


> Voir l'offre

Sujets relatifs
Formulaire non affiche sur mail apres envoi
Envoi de formulaire par mail sans PHP et sans CGI
affichage adresse mail dans formulaire
Verifier unicité du pseudo et mail dans formulaire
Formulaire envoyer dans mon adresse MAIL
Envoi d'un formulaire par mail
le formulaire n'arrive pas dans ma boîte e-mail !
Formulaire d'envoi de message
Adresse e-mail fantôme dans GMail ?
Envoi mail php
Plus de sujets relatifs à Envoi checkbox par mail dans formulaire php
 > Tous les forums > Forum Forum des Webmasters