> 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 poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
74,99 €Kit de 16 Go (2x8Go) de mémoire DDR4 Crucial Ballistix Tactical Tracer 3000 MHz RGB à 74,99 €
Valable jusqu'au 24 Février

Amazon fait une promotion sur le kit de 16 Go (2x8 Go) de mémoire DDR4 Crucial Ballistix Tacttical Tracer 3000 MT/s CL15 à 74,99 € livré gratuitement alors qu'on le trouve ailleurs à plus de 100 €. Vous pourrez personnaliser la palette de couleurs de votre ordinateur avec 16 LED RGB dans 8 zones sur chaque module.


> Voir l'offre
39,99 €Enceintes 2.1 Logitech Z337 avec bluetooth à 39,99 €
Valable jusqu'au 24 Février

Amazon fait une promotion sur le kit d'enceintes 2.1 Logitech Z337 (2 enceintes + 1 caisson de basses) d'une puissance de 40 W avec bluetooth qui passe à 49,99 € livré gratuitement. On le trouve ailleurs à partir de 79 €. Il possède un boitier de commande pour mettre les haut-parleurs sous tension, accéder au couplage Bluetooth et régler le volume.


> Voir l'offre
6,85 €Clé USB 3.0 Kingston DataTraveler 50 32 Go à 6,50 €
Valable jusqu'au 26 Février

Amazon vous propose actuellement la clé USB 3.0 Kingston DataTraveler 50 DT50 32 Go à 6,50 €. La livraison est gratuite.


> 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