Stoor van skikkings in PHP-sessies
Laat ons die kode wat ons in die vorige les gemaak het, oorweeg:
<?php
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Eintlik kon ons al die vormdata dadelik in
$_SESSION gestoor het:
<?php
if (!empty($_GET)) {
$_SESSION = $_GET;
}
?>
En in die lêer test2.php dit so maak:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION);
}
?>
Die voordeel van hierdie benadering is dat ons kode sal werk, ongeag die aantal invoervelde in die vorm.
Daar is egter ook 'n nadeel: deur
$_SESSION te oor te skryf, wis ons alle data
wat voorheen daar was. Ons weet nie wat 'n ander
skrip dalk daar gestoor het nie? En ons sal dit verwyder.
Kom ons doen dit anders:
<?php
if (!empty($_GET)) {
$_SESSION['nums'] = $_GET;
}
?>
Soos jy kan sien, het ons nie net een waarde in die sessieveranderlike gestoor nie,
maar 'n hele skikking.
Nou kan ons in die lêer test2.php die
som van die elemente van hierdie skikking vind:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
Op een bladsy, met behulp van 'n vorm, vra die
gebruiker om naam, ouderdom, salaris en nog
'n paar ander dinge. Stoor hierdie data in een sessieveranderlike
in die vorm van 'n skikking. Wanneer na 'n ander
bladsy gegaan word, deurloop die gestoorde data met 'n lus
en vertoon elke element van die skikking in sy eie
li tag binne 'n ul tag.