Arrays schrijven in PHP-sessies
Laten we de code bekijken die we in de vorige les hebben gemaakt:
<?php
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Eigenlijk hadden we meteen alle formuliergegevens
in $_SESSION kunnen schrijven:
<?php
if (!empty($_GET)) {
$_SESSION = $_GET;
}
?>
En in het bestand test2.php dit doen:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION);
}
?>
Het voordeel van deze aanpak is dat onze code werkt, ongeacht het aantal invoervelden in het formulier.
Er is echter ook een nadeel: door
$_SESSION te overschrijven,
wissen we alle gegevens uit
die er eerder waren. Wie weet wat
een ander script daar heeft geplaatst?
En wij verwijderen het.
Laten we het anders aanpakken:
<?php
if (!empty($_GET)) {
$_SESSION['nums'] = $_GET;
}
?>
Zoals je ziet, hebben we in de sessievariabele
niet slechts één waarde geschreven, maar een hele array.
Nu kunnen we in het bestand test2.php de
som van de elementen van deze array vinden:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
Vraag op één pagina via een formulier
naar de naam, leeftijd, salaris en nog
iets anders van de gebruiker.
Sla deze gegevens op in één sessievariabele
als een array. Ga naar een andere
pagina en doorloop de opgeslagen gegevens met een lus
en geef elk element van de array weer in zijn eigen
li tag van een ul tag.