× Plantage du forum 28/03/2023 - Perte de messages - A lire
 > 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
Station de charge portable Bluetti PowerOak EB240 2400Wh/1000W à 949 €
949 € 1800 € -47% @Geekbuying

Geebuying fait une belle promotion sur la station de charge portable Bluetti PowerOak EB240 2400Wh/1000W à 949 € grâce au code promo 7GUFQ4AF. On la trouve ailleurs à partir de 1800 €.

Cette Power Station offre une capacité de 2400Wh et deux sortie AC de 1000W (1200W en crète) à onde sinusoïdale pure. Elle peut alimenter des appareils tels que TV, réfrigérateurs, ordinateurs, des drones, etc. En tant que batterie au lithium de secours de 2400 Wh, elle fournit suffisamment de jus pour faire fonctionner les appareils essentiels pendant des heures, en fonction de la sortie réelle. Elle possède également 4 ports USB, un ports USB-C PD de 45W.

La batterie peut être rechargée via l'adaptateur secteur fourni ou des panneaux solaires. 

Très pratique comme station d'énergie autonome en voyage, camping ou pour parer à des coupures électriques.

Notez que l'expédition se faire depuis un entrepôt européen. Elle sera donc rapide et sans risque de douane.


Voir le bon plan
Pâte thermique Arctic MX-4 (4 g) à 4,99 €
4,99 € 6,99 € -29% @Amazon

Amazon fait une promotion sur la pâte thermique Arctic MX-4 (4 g) à 4,99 € au lieu de 6,99 €. La pâte thermique ARCTIC MX-4 composée de microparticules de carbone garantit une conductivité thermique extrêmement élevée. Ainsi, la chaleur du processeur ou des puces est dissipée rapidement et efficacement. Pour CPU et GPU PC, XBox, PS4, ...


Voir le bon plan
Ecran PC 32 pouces incurvé Samsung Odyssey G5 (WQHD, 144 Hz, 1 ms) à 299 €
299,00 € 349,99 € -15% @Amazon

Amazon fait une promotion sur l'écran PC 32 pouces incurvé Samsung Odyssey G5 à 299 € alors qu'on le trouve ailleurs à partir de 349,99 €. Cet écran incurvé de 32 pouces offre une définition WQHD de 2560x1440 pixels et est compatible FreeSync Premium avec un taux de réponse de 1 ms et un rafraichissement de 144 Hz.


Voir le bon plan
Station de charge portable Bluetti EB70 LiFePO4 716Wh/1000W à 449 €
449 € 799 € -44% @Geekbuying

Geebuying fait une belle promotion sur la station de charge portable Bluetti EB70 716Wh/1000W qui passe à 449 € grâce au code promo 7S0EQJPV. On la trouve ailleurs à partir de 799 €.

Cette Power Station offre une capacité de 716Wh et 4 sorties AC de 1000W à onde sinusoïdale pure. Elle peut alimenter des appareils de moins de 1000 W, tels que des ordinateurs portables, des drones, des petits congélateurs TV, des petits ventilateurs, etc. La batterie LiFePO4 supporte plus de 2500 cycles de charge. Elle fournit suffisamment de jus pour faire fonctionner les appareils essentiels pendant des heures, en fonction de la sortie réelle. Elle possède également 2 ports USB, deux ports USB-C PD de 100W et un port de charge sans fil 15W.


Voir le bon plan
Liseuse Amazon Kindle Paperwhite 6.8 pouces avec éclairage chaud réglable à 94,99 €
94,99 € 139,99 € -32% @Amazon

Amazon fait une belle promotion sur la liseuse Amazon Kindle Paperwhite qui passe à 94,99 € au lieu de 139,99 €. Cette version est désormais doté d'un écran 6,8 pouces (6 pouces auparavant), de bords plus fins, d'un éclairage réglable (vous pouvez changer la teinte94 de l'écran d'une lumière blanche à un ambre chaud ou programmer quand changer la lumière) avec 17 Leds et d'une autonomie pouvant aller jusqu'à 10 semaines, et 20 % plus rapide pour tourner les pages. Avec une façade plane et un écran sans reflets de 300 ppp qui se lit comme une véritable page imprimée, même en plein soleil.

Elle est toujours résistante à l'eau (IPX8), afin que vous puissiez lire en toute tranquillité à la plage, au bord de la piscine ou dans le bain. Cette liseuse dispose du WiFi, d'un port de charge USB C et de 8 Go d'espace de stockage.

Formats pris en charge : Epub, Kindle Format 8 (AZW3), Kindle (AZW), TXT, PDF, MOBI non protégé, PRC natif ; HTML, DOC, DOCX, JPEG, GIF, PNG, BMP converti.


Voir le bon plan
Processeur AMD Ryzen 7 5800X à 234,90 €
234,90 € 300 € -22% @Amazon

Amazon fait une promotion sur le processeur AMD Ryzen 7 5800X (8 coeurs, 16 threads, 3.8 GHz/4.7 GHz) qui passe à 234,90 €. On le trouve ailleurs autour de 300 €. 


Voir le bon plan

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