> 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
-20%Jusqu'à -20% de réduction sur une sélection de produits Bosch Professional
Valable jusqu'au 22 Janvier

Amazon fait actuellement jusqu'à 20% de remise immédiate sur une sélection de produits Bosch Professional.


> Voir l'offre
329 €Smartphone Samsung M51 (6,7 pouces FHD+, 6 Go RAM, 128 Go) à 329 €
Valable jusqu'au 20 Janvier

Amazon fait une belle promotion sur le nouveau smartphone Samsung M51 qui passe à 329 € livré gratuitement au lieu de 399 €. Le smartphone Samsung Galaxy M51 dispose d'un écran Super AMOLED6.7 pouces d'une résolution de 1080 x 2400 pixels, d'un processeur 8 coeurs Snapdragon 730G et 6 Go de RAM. 128 Go de stockage sont présents et sont extensibles par MicroSD (512 Go max). Pour les moments inattendus de la vie, le quadruple appareil photo est idéal. Prenez de superbes photos de votre monde avec un appareil photo principal de 64 MP ou obtenez une image plus large avec l’angle de vue de 123 ° de l’objectif ultra grand angle 12 MP. Le capteur de profondeur 5 MP ajoute un flou d’arrière-plan et l’objectif macro 5 MP optimise la mise au point sur les gros plans.  A l'avant, un appareil photo 32 MP vous permettra de réaliser vos selphies avec un léger flou d'arrière-plan grâce à la mise au point en direct. Il est soutenu par une batterie de 7000 mAh avec recharge rapide. Les fonctionnalités de connectivité du smartphone incluent WiFi, Bluetooth, GPS, Volte, etc. 

Le Galaxy M51 dispose d’un capteur d’empreinte digitale à l’arrière pour vous connecter aux applications compatibles et déverrouiller votre appareil en toute simplicité. Le tout tourne sous Android 10.


> Voir l'offre
14,44 €16 Piles rechargeables AmazonBasics AAA 800 mAh à 14,44 €
Valable jusqu'au 20 Janvier

Amazon fait une promotion sur le lot de 16 piles rechargeables AAA de sa marque AmazonBasics à 14,44 € seulement. Ces piles ont une capacité de 800 mAh et sont livrés préchargées. Si vous avez besoin d'un chargeur de piles, vous pouvez vous tourner vers ce modèle.


> 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