Memorizzazione di array nelle sessioni PHP
Consideriamo il codice realizzato da noi nella lezione precedente:
<?php
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
In realtà si poteva prendere e memorizzare
tutti i dati del modulo subito in $_SESSION:
<?php
if (!empty($_GET)) {
$_SESSION = $_GET;
}
?>
E nel file test2.php fare così:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION);
}
?>
Il vantaggio di questo approccio è che il nostro codice funzionerà indipendentemente dal numero di input nel modulo.
C'è, tuttavia, anche uno svantaggio: sovrascrivendo
$_SESSION cancelliamo tutti i dati
che erano lì precedentemente. Chissà cosa ci
ha scritto un altro nostro script? E noi lo eliminiamo.
Facciamo in un altro modo:
<?php
if (!empty($_GET)) {
$_SESSION['nums'] = $_GET;
}
?>
Come potete vedere, nella variabile di sessione abbiamo memorizzato
non un singolo valore, ma un intero array.
Ora nel file test2.php possiamo trovare
la somma degli elementi di questo array:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
Su una pagina, utilizzando un modulo, chiedi
all'utente nome, età, stipendio e qualcos'altro.
Memorizza questi dati in una variabile di sessione
sotto forma di array. Quando accedi a un'altra
pagina, scorri i dati salvati con un ciclo
e visualizza ogni elemento dell'array nel proprio
tag li del tag ul.