Zapisywanie tablic w sesjach PHP
Rozważmy kod, który stworzyliśmy w poprzedniej lekcji:
<?php
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
W rzeczywistości można było wziąć i zapisać
wszystkie dane formularza od razu do $_SESSION:
<?php
if (!empty($_GET)) {
$_SESSION = $_GET;
}
?>
A w pliku test2.php zrobić tak:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION);
}
?>
Zaletą tego podejścia jest to, że nasz kod będzie działał niezależnie od liczby pól w formularzu.
Jest jednak i wada: nadpisując
$_SESSION usuwamy wszystkie dane,
które wcześniej tam były. Kto wie, co
zapisał tam inny nasz skrypt? A my to usuniemy.
Zróbmy inaczej:
<?php
if (!empty($_GET)) {
$_SESSION['nums'] = $_GET;
}
?>
Jak widzicie, do zmiennej sesji zapisaliśmy
nie jakąś pojedynczą wartość, a całą tablicę.
Teraz w pliku test2.php możemy znaleźć
sumę elementów tej tablicy:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
Na jednej stronie za pomocą formularza zapytaj
użytkownika o imię, wiek, wynagrodzenie i jeszcze
coś. Zapisz te dane w jednej zmiennej
sesji w postaci tablicy. Przy wejściu na drugą
stronę przejrzyj zapisane dane pętlą
i wyświetl każdy element tablicy w swoim
tegu li tegu ul.