Page 1 sur 1

Array de checkbox

Posté : 26 sept. 2012, 10:14
par sanku
Bonjour à tous,

J'ai récupéré une page avec un formulaire de contact et je dois rajouter un item en checkbox, j'ai dépoussiéré voici mes codes :
<form name="form1" method="POST" action="_mail.php" onSubmit="return CheckAll(this);">
<table width="708" border="0" cellspacing="1" cellpadding="2">


    <tr>
      <td width="165" align="right" valign="top">Villes *: </td>
      <td width="565" align="left" valign="top">
      <input name="fieldnm_1" type="checkbox" value="Paris" />
      Paris
      <input name="fieldnm_1" type="checkbox" value="Lyon" />
      Lyon
      <input name="fieldnm_1" type="checkbox" value="Marseille" />
      Marseille</td>
    </tr>

    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Submit">
      <input type="reset" name="Submit2" value="Reset"></td>
    </tr>
</table>
</form>
<?php ob_start();
$fromemail="Prise de contact <[email protected]>";
$toemail="[email protected]"; 
$sub="Contactez nous"; 
$success_page_name="merci.html";


if($_SERVER['REQUEST_METHOD']=="POST")
{
$fieldnm_1=str_replace ( array("\n"), array("<br>"),trim($_REQUEST['fieldnm_1']));  


$contentmsg=stripslashes("<br><b><font style=color:#CC3300>$sub</font></b><br>
<table width=708 border=0 cellpadding=2 cellspacing=1 bgcolor=#CCCCCC>

<tr>
      <td width=165 align=right valign=top bgcolor=#FFFFFF><B>Villes *:</b> </td>
      <td width=565 align=left valign=top bgcolor=#FFFFFF>$fieldnm_1</td>
</tr>

</table>
");

$headers  = "MIME-Version: 1.0
";
$headers .= "Content-type: text/html; charset=iso-8859-1
";
				
$from=$fromemail;
				
$headers .= "From: ".$from." 
";
				
@mail($toemail,$sub,$contentmsg,$headers);
				
				
header("Location:$success_page_name");

}
?>

Donc je réceptionne bien mon message mais je n'ai qu'une seule valeur de récupérée alors que j'en voudrais plusieurs si plusieurs sont cochées...

J'ai rajouté au name de mes input
fieldnm_1[] 
et collé un truc du genre
$fieldnm_1=str_replace ( array("\n"), array("<br>"),trim($_REQUEST['fieldnm_1'][$i]));
Mais bon impossible de récupérer cette liste, dans mon mail,

Merci d'avance ;)

Re: Array de checkbox

Posté : 26 sept. 2012, 10:33
par xTG
Que te donnes un var_dump($_REQUEST['fieldnm_l']); ?

Re: Array de checkbox

Posté : 26 sept. 2012, 10:51
par sanku
Ça me renvoie :

array(2) { [0]=> string(5) "Paris" [1]=> string(9) "Marseille" }
Warning: Cannot modify header information - headers already sent by (output started at /homepages/35/d428868549/htdocs/_mail.php:3) in /homepages/35/d428868549/htdocs/_mail.php on line 39

Re: Array de checkbox

Posté : 26 sept. 2012, 11:26
par xTG
Tu reçois donc bien les données.
Pour les exploiter :
$fieldnm_1 = implode("<br />", $_REQUEST['fieldnm_l']);
(pour transformer l'array en chaîne de caractères dont chaque index est séparé par une balise br.

Re: Array de checkbox

Posté : 26 sept. 2012, 11:56
par sanku
Ok merci alors je reçois bien le mail avec les infos...

Par contre je ne suis pas redirigé vers ma page merci.html et j'ai la page _mail.php qui m'affiche :

Warning: Cannot modify header information - headers already sent by (output started at /homepages/35/d428868549/htdocs/_mail.php:3) in /homepages/35/d428868549/htdocs/_mail.php on line 39

la ligne 39 correspond à
header("Location:$success_page_name");

Re: Array de checkbox

Posté : 26 sept. 2012, 12:28
par sanku
A pardon j'avais du faire une erreur de manip, merci bien !

Re: [RESOLU] Array de checkbox

Posté : 26 sept. 2012, 14:10
par xTG
Cette erreur s'explique par la présence de caractère envoyé au navigateur avant le header().
Car cette fonction doit pouvoir écrire dans l'entête, or tout caractère blanc ou html ferme l'entête et écrit dans le corps.