Zápis polí do session PHP

Podívejme se na kód, který jsme vytvořili v předchozí lekci:

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

Ve skutečnosti bylo možné vzít a zapsat všechna data formuláře najednou do $_SESSION:

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

A v souboru test2.php udělat toto:

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

Výhoda tohoto přístupu spočívá v tom, že náš kód bude fungovat nezávisle na počtu inputů ve formuláři.

Existuje však také nevýhoda: přepsáním $_SESSION mažeme všechna data, která tam byla dříve. Kdo ví, co tam zapsal náš jiný skript? A my to smažeme.

Pojďme to udělat jinak:

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

Jak vidíte, do proměnné session jsme zapsali nejen jednu konkrétní hodnotu, ale celé pole. Nyní v souboru test2.php můžeme najít součet prvků tohoto pole:

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

Na jedné stránce pomocí formuláře se zeptejte uživatele na jméno, věk, plat a ještě něco dalšího. Zapište tato data do jedné proměnné session ve formě pole. Při vstupu na druhou stránku projděte uložená data cyklem a vypište každý prvek pole ve svém tagu li tagu ul.