PHP-ի սեսիաներում զանգվածների գրանցում
Դիտարկենք նախորդ դասում մեր ստեղծած կոդը.
<?php
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Իրականում կարելի էր վերցնել և անմիջապես գրանցել
ձևի բոլոր տվյալները $_SESSION-ում.
<?php
if (!empty($_GET)) {
$_SESSION = $_GET;
}
?>
Իսկ test2.php ֆայլում անել այսպես.
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION);
}
?>
Նման մոտեցման առավելությունն այն է, որ մեր
կոդը կաշխատի անկախ ֆորմայի input-ների քանակից:
Սակայն կա նաև թերություն. Վերագրելով
$_SESSION-ին, մենք ջնջում ենք բոլոր տվյալները,
որոնք նախկինում կային այնտեղ: Ով գիտի, թե ինչ է գրել
մեր մեկ այլ սկրիպտը: Իսկ մենք դա կջնջենք:
Եկեք անենք այլ կերպ.
<?php
if (!empty($_GET)) {
$_SESSION['nums'] = $_GET;
}
?>
Ինչպես տեսնում եք, սեսիայի փոփոխականի մեջ մենք գրեցինք
ոչ թե մեկ որոշակի արժեք, այլ մի ամբողջ զանգված:
Այժմ test2.php ֆայլում կարող ենք գտնել
այդ զանգվածի տարրերի գումարը.
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
Մի էջում, օգտագործելով ֆորմա, հարցրեք
օգտագործողի անունը, տարիքը, աշխատավարձը և
էլ ինչ-որ բան: Գրանցեք այս տվյալները սեսիայի մեկ փոփոխականի
մեջ՝ որպես զանգված: Մեկ այլ էջ այցելելիս
անցեք պահպանված տվյալների վրայով ցիկլով
և արտածեք զանգվածի յուրաքանչյուր տարր իր
li տեգում, որը գտնվում է ul տեգի մեջ: