[RESOLU] Array de checkbox

Petit nouveau ! | 8 Messages

26 sept. 2012, 10:14

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 ;)

ViPHP
xTG
ViPHP | 7331 Messages

26 sept. 2012, 10:33

Que te donnes un var_dump($_REQUEST['fieldnm_l']); ?

Petit nouveau ! | 8 Messages

26 sept. 2012, 10:51

Ç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

ViPHP
xTG
ViPHP | 7331 Messages

26 sept. 2012, 11:26

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.

Petit nouveau ! | 8 Messages

26 sept. 2012, 11:56

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");

Petit nouveau ! | 8 Messages

26 sept. 2012, 12:28

A pardon j'avais du faire une erreur de manip, merci bien !

ViPHP
xTG
ViPHP | 7331 Messages

26 sept. 2012, 14:10

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.