Salvarea array-urilor în sesiunea PHP
Să luăm în considerare codul creat de noi în lecția anterioară:
<?php
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
De fapt, am fi putut lua și să salvăm
toate datele formularului imediat în
$_SESSION:
<?php
if (!empty($_GET)) {
$_SESSION = $_GET;
}
?>
Și în fișierul test2.php să facem așa:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION);
}
?>
Avantajul acestei abordări este că codul nostru va funcționa indiferent de numărul de input-uri din formular.
Există însă și un dezavantaj: rescriind
$_SESSION ștergem toate datele
care erau acolo anterior. Cine știe ce
a scris acolo un alt script al nostru? Și noi le ștergem.
Să procedăm altfel:
<?php
if (!empty($_GET)) {
$_SESSION['nums'] = $_GET;
}
?>
După cum vedeți, în variabila de sesiune am salvat
nu o valoare anume, ci un întreg array.
Acum în fișierul test2.php putem găsi
suma elementelor acestui array:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
Pe o pagină, folosind un formular, întrebați
utilizatorul despre nume, vârstă, salariu și încă
ceva. Salvați aceste date într-o singură variabilă
de sesiune sub formă de array. La accesarea altei
pagini parcurgeți datele salvate cu un ciclu
și afișați fiecare element al array-ului în propriul
tag li al tag-ului ul.