64 votes

Tableau en tant que variable de session

Est-il possible de faire d'un tableau une variable de session en PHP?

La situation est que j'ai un tableau (page 1) avec certaines cellules contenant un lien vers une page particulière. La page suivante aura une liste de noms (page 2, que je veux garder dans un tableau de session) avec leurs cases à cocher respectives. En soumettant ce formulaire, cela mènera à une page de transaction (page 3, où les valeurs des cases à cocher publiées sont conservées dans une base de données pour les noms correspondants). Maintenant, si je retourne à la première page et clique sur une autre cellule, le tableau de session contiendra-t-il la nouvelle liste de noms ou les anciens?

74voto

Sarfraz Points 168484

Oui, vous pouvez mettre des tableaux dans les sessions, par exemple :

$_SESSION['nom_icI'] = $votre_tableau;

Maintenant, vous pouvez utiliser $_SESSION['nom_icI'] sur n'importe quelle page que vous voulez, mais assurez-vous de mettre la ligne session_start() avant d'utiliser des fonctions de session, votre code devrait donc ressembler à ceci :

 session_start();
 $_SESSION['nom_icI'] = $votre_tableau;

Exemple Possible :

 session_start();
 $_SESSION['nom_icI'] = $_POST;

Maintenant, vous pouvez obtenir les valeurs des champs sur n'importe quelle page de cette manière :

 echo $_SESSION['nom_icI']['nom_champ'];

Quant à la deuxième partie de votre question, les variables de session restent là sauf si vous assignez des données de tableau différentes :

 $_SESSION['nom_icI'] = $votre_tableau;

La durée de vie de la session est définie dans le fichier php.ini.

Plus d'informations ici

69voto

Kaleb Brasee Points 25776

Oui, PHP prend en charge les tableaux en tant que variables de session. Consultez cette page pour un exemple.

Quant à votre deuxième question : une fois que vous définissez la variable de session, elle restera la même jusqu'à ce que vous la changiez ou que vous unset. Donc, si la 3ème page ne change pas la variable de session, elle restera la même jusqu'à ce que la 2ème page la change à nouveau.

7voto

Sanjoy Points 61
'.$_SESSION['student'][$i].'';
     }  ?>

      Nom
      Ville

2voto

muhammad sirajo Points 21

Tout d'abord, changez le tableau en une chaîne en utilisant la fonction implode(). Par exemple :

$number = array(1,2,3,4,5);

# Transformer en une chaîne en utilisant | comme séparateur.
$stringofnumber = implode('|', $number);

# Passer la chaîne à une session. par exemple
$_SESSION['string'] = $stringofnumber;

Donc, lorsque vous accédez à la page où vous souhaitez utiliser le tableau, il suffit d'exploser votre chaîne. Par exemple :

# Requis avant d'accéder à $_SESSION.
session_start();

# Exploser de nouveau en un tableau en utilisant | comme aiguille.
$number=explode('|', $_SESSION['string']);

Votre tableau est maintenant la valeur de $number.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X