Checkbox Formulaire Mail

Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011 - 15 févr. 2008 à 11:04
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 15 févr. 2008 à 17:17
Hello,

Voilà j'ai un formulaire avec une liste de checkbox de se style :
// ou NAME change suivant les box

Voici mon php de recup des données :

<?php

$_POST = array_map('utf8_decode', $_POST);

$formSociety = $_POST['society'];
$formNom = $_POST['name'];
$formPrenom = $_POST['prename'];
$formAdresse = $_POST['adress'];
$formCP = $_POST['zipcode'];
$formVille = $_POST['city'];
$formPays = $_POST['country'];
$formTel = $_POST['phone'];
$formFax = $_POST['fax'];
$formEmail = $_POST['email'];
$formKids = $_POST['selectKids'];
$formMoyenP = $_POST['moyenP'];
$formMsg = $_POST['remark'];

if($formMsg == '') {
   $formMsg = "Aucunes";
}

if($formFax == '') {
   $formFax = "n/c";
}

if(!empty($formSociety) && !empty($formNom) && !empty($formPrenom) && !empty($formAdresse) && !empty($formCP) && !empty($formVille) && !empty($formPays) && !empty($formTel) && !empty($formEmail) && !empty($formKids) && !empty($formMoyenP) ){

srand((double)microtime()*1000000);
$valeur = md5(uniqid(rand()));

$header = "From: MySociety <monmail@mail.com>\n";
$header .= "Reply-To: MySociety <monmail@mail.com>\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/alternative; boundary=$valeur\n";

$Mail = "mail@mail.com";
$Subject = "-- Subject --";

$body = "Les Kids sont : $formKids";

if( mail($Mail,$Subject,$body,$header) ){
     echo '
Votre souhait à bien été envoyé !
';
     } else{
          echo '
Une erreur est survenu lors de l\'envoi du message !
';
           }
} else{
     echo '
* Tous les champs indiqués par un * sont obligatoires
';
      }
     
?>

Je vous ai raccourci le $body pour que vous compreniez que mon problème vient de la reception des valeur des checkbox...

Lors de la reception du mail je recoit : " Les Kids sont : Array "
....

Help plz...
Thanks :)

12 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
15 févr. 2008 à 11:53
salut
tu fais :
$formKids = $_POST['selectKids'];
alors que ton form c'est :

pour lister les enfants selectionnes :
foreach ($_POST['selectKids'] as $a){
    echo 'l\'enfant '.$a.' est selectionne !
';
}
/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
15 févr. 2008 à 13:00
OK.

J'ai remplacer
$_POST['selectkids']
par
foreach ($_POST['selectkids'] as $formKids){
    $listKids = $formKids.' , ';
}

et dans $body = "Les Kids sont : $listKids ";

Mais cela ne marche tjs po ...

merci pour ta reponse.
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
15 févr. 2008 à 13:17
en php, .= permet d'ajouter a la fin....
foreach ($_POST['selectkids'] as $formKids){
    $listKids. = $formKids.' , ';
}
$listKids=substr($listKids, 0, strlen($listKids)-2);

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
15 févr. 2008 à 13:18
j'allais oublier...
il faut mettre $listKids=''; au debut, et la ligne :
$listKids=substr($listKids, 0, strlen($listKids)-2);
sert a ne pas avoir ", " a la fin de la variable...
/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
15 févr. 2008 à 13:27
Voici mon code :

<?php

$_POST = array_map('utf8_decode', $_POST);

$formSociety = $_POST['society'];
$formNom = $_POST['name'];
$formPrenom = $_POST['prename'];
$formAdresse = $_POST['adress'];
$formCP = $_POST['zipcode'];
$formVille = $_POST['city'];
$formPays = $_POST['country'];
$formTel = $_POST['phone'];
$formFax = $_POST['fax'];
$formEmail = $_POST['email'];
$listKids = '';

foreach ($_POST['selectkids'] as $formKids){
    $listKids .= $formKids." , ";
}
$listKids = substr($listKids, 0, strlen($listKids)-2);

$formKids = $_POST['selectkids'];
$formMoyenP = $_POST['moyenP'];
$formMsg = $_POST['remark'];

if($formMsg == '') {
   $formMsg = "Aucunes";
}

if($formFax == '') {
   $formFax = "n/c";
}

if(!empty($formSociety)
&& !empty($formNom) && !empty($formPrenom) &&
!empty($formAdresse) && !empty($formCP) &&
!empty($formVille) && !empty($formPays) &&
!empty($formTel) && !empty($formEmail) &&
!empty($formKids) && !empty($formMoyenP) ){

srand((double)microtime()*1000000);
$valeur = md5(uniqid(rand()));

$header = "From: MySociety <monmail@mail.com>\n";
$header .= "Reply-To: MySociety <monmail@mail.com>\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/alternative; boundary=$valeur\n";

$Mail = "mail@mail.com";
$Subject = "-- Subject --";

$body = "Les Kids sont : $listKids";

if( mail($Mail,$Subject,$body,$header) ){
     echo '
Votre souhait à bien été envoyé !
';
     } else{
          echo '
Une erreur est survenu lors de l\'envoi du message !
';
           }
} else{
     echo '
* Tous les champs indiqués par un * sont obligatoires
';
      }
     
?>

Mais cela ne marche tjs pas.. j'ai un . a la place de la liste
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
15 févr. 2008 à 13:36
Attention, en dessou de :
$listKids = substr($listKids, 0, strlen($listKids)-2);

il y a



$formKids = $_POST['selectkids'];



mais je l'ai enlevé
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
15 févr. 2008 à 15:33
teste en supprimant :
$listKids = substr($listKids, 0, strlen($listKids)-2);
ou en faisant un print_r sur $_POST histoir de voir tes valeurs
/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
15 févr. 2008 à 15:41
en supprimant $listKids = substr($listKids, 0, strlen($listKids)-2); aucun changement...

un print_r($POST); me renvoie cela : [selectkids] => Array
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
15 févr. 2008 à 16:42
print_r affiche le contenu de l'array....

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
15 févr. 2008 à 16:57
Non mais j'ai trouvé la solution :)

$_POST = array_map('utf8_decode', $_POST);

cela empecher l'affichage de l'array.

Mais maintenant je ne sait pas comment encoder les POST pour la gestion des accents
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
15 févr. 2008 à 17:01
Enfin si je met utf8_decode(); avec mes $_POST[''] a l'intérieur.

Genre : $formEmail = utf8_decode($_POST['email']);

A tous sauf a celui des checkbox ^-^
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
15 févr. 2008 à 17:17
faut faire un truc genre array_walk_recursive
cherche si ca existe dans la doc, sinon, recode le, c'est pas bien complique

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
0