Enregistrement de tableaux dans les sessions PHP
Examinons le code que nous avons créé dans la leçon précédente :
<?php
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
En réalité, on aurait pu prendre et enregistrer
toutes les données du formulaire directement dans $_SESSION :
<?php
if (!empty($_GET)) {
$_SESSION = $_GET;
}
?>
Et dans le fichier test2.php, faire comme ceci :
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION);
}
?>
L'avantage de cette approche est que notre code fonctionnera indépendamment du nombre de champs dans le formulaire.
Il y a cependant un inconvénient : en réécrivant
$_SESSION, nous effaçons toutes les données
qui s'y trouvaient auparavant. Qui sait ce qu'un
autre de nos scripts y avait mis ? Et nous, nous le supprimons.
Procédons autrement :
<?php
if (!empty($_GET)) {
$_SESSION['nums'] = $_GET;
}
?>
Comme vous le voyez, dans la variable de session, nous avons enregistré
non pas une seule valeur, mais un tableau entier.
Maintenant, dans le fichier test2.php, nous pouvons trouver
la somme des éléments de ce tableau :
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
Sur une page, demandez à l'utilisateur, via un formulaire,
son nom, son âge, son salaire et autre chose.
Enregistrez ces données dans une variable de session
sous forme de tableau. Lors de l'accès à une autre
page, parcourez les données sauvegardées avec une boucle
et affichez chaque élément du tableau dans sa propre
balise li de la balise ul.