× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > 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
217,57 €NAS Synology DS218 à 217,57 € avec le code SYNO218
Valable jusqu'au 26 Novembre

LDLC fait une promotion sur le NAS Synology DS218 qui passe à 217,57 € avec le code promo SYNO218 alors qu'on le trouve ailleurs à partir de 250 €.  Gérez votre bibliothèque multimédia avec le serveur NAS Synology DiskStation DS218. Ce modèle 2 baies sera capable d'effectuer le transcodage en temps réel des contenus source 4K Ultra HD. Il est doté d'un processeur Realtek Quad-Core avec une mémoire de 2 Go RAM DDR4. Disposez de deux ports USB 3.0, d'un port Gigabit Ethernet, d'un système de stockage avec fichier ext4 et d'une solution efficace de synchronisation et de sauvegarde. 


> Voir l'offre
99,99 €Disque dur externe portable Western Digital Elements USB 3.0 5 To à 99,99 €
Valable jusqu'au 28 Novembre

La Fnac propose actuellement le disque dur externe portable Western Digital Elements USB 3.0 5 To à 99,99 €. On le trouve habituellement à partir de 119 €. Ce disque dur qui tient dans la main est silencieux, ne chauffe pas et dispose d'une connectique USB 3.0 qui vous offrira des transferts rapides. Il est compatible USB 2.0. Si vous préférez, il est également disponible chez Darty au même prix et Amazon semble également s'être aligné sur le prix. Une très bonne affaire.


> Voir l'offre
144,48 €Mini PC Acute Angle AA-B4 (Celeron N3450, 8Go RAM, 64Go+SSD 128Go) à 144,48 €
Valable jusqu'au 27 Novembre

Gearbest fait une promotion sur l'ordinateur Acute Angle AA - B4 qui passe à 144,48 € au lieu de 180 €. Ce mini PC au design atypique et au corps en bois, intègre un processeur Intel Celeron N3450 (4 coeurs de 1,1 à 2,2 GHz), 8 Go de RAM, un espace de stockage de 64 Go EMMC ainsi qu'un SSD de 128 Go. Il possède également le WiFi5, le Bluetooth 5.0, une prise Ethernet Gigabit, 3 ports USB 3.0, une sortie HDMI. L'ordinateur est livré avec une prise électrique européenne. Il est accompagné de Windows 10 Familial. Avec ce PC, vous pourrez réaliser sans soucis toutes vos tâches courantes : internet, bureautique, multimédia.

Ce marchand sérieux se trouvant en Chine, la livraison peut prendre une quinzaine de jours. Comptez 5,62 € pour la livraison en France et l'assurance pour le transport. Vous pouvez payer par carte bancaire ou par Paypal (conseillé pour bénéficier de la garantie Paypal).


> 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