Taulukoiden tallentaminen PHP:n sessioon

Tarkastellaan koodia, jonka teimme edellisessä oppitunnissa:

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

Itse asiassa olisi voinut ottaa ja tallentaa kaikki lomakkeen tiedot heti $_SESSION:iin:

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

Ja tiedostossa test2.php tehdä näin:

test2.php<?php
  if (!empty($_SESSION)) {
    echo array_sum($_SESSION);
  }
?>

Tämän lähestymistavan etuna on, että koodimme toimii riippumatta lomakkeen input-kenttien määrästä.

Siinä on kuitenkin myös haittapuoli: korvaamalla $_SESSION:n me ylikirjoitamme kaikki tiedot, jotka siellä aiemmin olivat. Kuka tietää mitä toinen skriptimme on sinne tallentanut? Ja me poistamme sen.

Tehdään toisin:

test2.php<?php
  if (!empty($_GET)) {
    $_SESSION['nums'] = $_GET;
  }
?>

Kuten näette, sessio-muuttujaan tallensimme ei yhden arvon, vaan kokonaisen taulukon. Nyt tiedostossa test2.php voimme laskea tämän taulukon elementtien summan:

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

Kysy yhdellä sivulla lomakkeen avulla käyttäjältä nimi, ikä, palkka ja vielä jotain muuta. Tallenna nämä tiedot yhteen session muuttujaan taulukon muodossa. Kun siirryt toiselle sivulle, käy läpi tallennetut tiedot silmukalla ja tulosta jokainen taulukon elementti omassa li-tagissaan ul-tagin sisällä.