Valeurs qui disparaissent d'une variable session (tableau)
Bonjour,
je rencontre un problème sur lequel je commence à m'arracher les cheveux !
En gros, j'ai une variable de session (tableau) qui contient des identifiants.
Sur les différentes pages les valeurs sont gardées en mémoire, en faisant un print_r($_SESSION) j'obtiens :
Array ( [tab_opps[]] => Array ( [6] => 4 [7] => 3 [8] => 9 ) )
mais dès que je soumet un formulaire, dans la page php appellée (action du form) je refais ce print_r($_SESSION) et j'obtiens :
Array ( [tab_opps[]] => )
alors que si je le fait sur n'importe quelle autre page j'ai les valeurs !
voici mon code dans la page contenant le formulaire
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
<?php
if (! $_SESSION['tab_opps[]'] )
{
$_SESSION['tab_opps[]'] = array();
echo "none";
}
if (! in_array($_REQUEST[idopp], $_SESSION['tab_opps[]']) && $_REQUEST[idopp] != '')
array_push($_SESSION['tab_opps[]'], $_REQUEST[idopp]);
// ajoute l'idopp dans le tableau de session
// s'il n'est pas deja contenu dans ce tableau
if ($_REQUEST[iddel]) // supprimer une valeur du tableau
unset( $_SESSION['tab_opps[]'][array_search($_REQUEST[iddel], $_SESSION['tab_opps[]'])] );
print_r($_SESSION['tab_opps[]']);
echo "<table>";
foreach ($_SESSION['tab_opps[]'] as $key=>$val) // tableau html qui récapitule les idopp
{
echo "<tr> <td>#".$val."</td>
<td><a href='cdc.php?view=joinus&iddel=".$val."'>
<img alt='Delete' title='Delete' class='link' src='../Ico/delete.ico' /></a></td></tr>";
}
?> |
et sur la page d'action
Code:
1 2 3 4 5 6 7 8 9
|
$insert_for = new CObj;
foreach ($_SESSION['tab_opps[]'] as $key=>$val)
{
$insert_for->Set_query("Insert into FOR values ('$idjoin', '$val')");
$insert_for->Modify();
} |
bien évidemment j'ai une erreur puisque le tableau ne contient plus rien :
Warning: Invalid argument supplied for foreach() in C:\Documents and Settings\mgarcia\Desktop\MATT\ZMWS\_web.zmwsc\CDC\Php\joiningform.php on line 51
mais dès que je reviens sur n'importe quelle page avec un print_r les valeurs sont de retour...
les premières lignes de ces pages sont identiques :
session_name("cdc_management");
session_start();
print_r($_SESSION);
j'espère avoir suffisement détaillé, merci de votre aide !