Zápis polí do session PHP
Podívejme se na kód, který jsme vytvořili v předchozí lekci:
<?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:
<?php
if (!empty($_GET)) {
$_SESSION = $_GET;
}
?>
A v souboru test2.php udělat toto:
<?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:
<?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:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
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.