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
et sur la page d'action
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>"; } ?>
bien évidemment j'ai une erreur puisque le tableau ne contient plus rien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); }
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 !
Partager