Arrays schrijven in PHP-sessies

Laten we de code bekijken die we in de vorige les hebben gemaakt:

html<?php
  if (!empty($_GET)) {
    $_SESSION['num1'] = $_GET['num1'];
    $_SESSION['num2'] = $_GET['num2'];
  }
?>

Eigenlijk hadden we meteen alle formuliergegevens in $_SESSION kunnen schrijven:

test1.php<?php
  if (!empty($_GET)) {
    $_SESSION = $_GET;
  }
?>

En in het bestand test2.php dit doen:

test2.php<?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:

test2.php<?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:

test2.php<?php
  if (!empty($_SESSION)) {
    echo array_sum($_SESSION['nums']);
  }
?>
Задание 1

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.