Сессияҳо дар PHP
Вақте ки мо саҳифаи вебсайтро дар браузери худ мебинем, скрипти PHP-и ин саҳифа аллакай кор карда ва моро фаромӯш кардааст. Аз ин рӯ, агар мо аз як саҳифаи вебсайт ба саҳифаи дигар гузарем - скрипти PHP наметавонад маълумоти саҳифаи қаблиро дар хотир нигоҳ дорад, масалан, қиматҳои тағирёбандаҳоро.
Аммо, чунин механизм хеле лозим аст, ҳатто барои он, ки интихоби корбар ё онро, ки корбар авторизатсия шуда буд, дар хотир нигоҳ дорад.
Дар PHP барои нигоҳ доштани маълумоти корбар байни саҳифаҳои вебсайт сессияҳо пешбинӣ шудаанд. Мо метавонем ягон маълумотро ба сессия нависем ва онро дар инҷо аз он ҷо дар гузариши навбатӣ хонем аз ин ё скрипти дигари вебсайт. Бо ёрии сессия метавон авторизатсияи корбарон, сабади мағозаи интернетӣ ва дигарро амалӣ кард.
Сессияи корбар дар сервер нигоҳ дошта мешавад. Дар ҳоле ки он ҳамеша зинда нест, балки танҳо тақрибан ним соат - агар корбар дар ин вақт ягон дархост ба вебсайт накарда бошад, пас сессияи ӯ нест карда мешавад ва холӣ хоҳад шуд.
Пас, биёед бубинем, чӣ тавр бо
сессияҳо дар PHP кор кардан мумкин аст.
Барои навиштани чизе ба сессия, аввал онро
бояд оростан бо ёрии функсияи
session_start:
<?php
session_start();
?>
Пас аз оростан мо метавонем чизе
ба сессия нависем ё чизеро аз он ҷо хонем.
Ин бо ёрии массиви суперглобали
$_SESSION иҷро карда мешавад.
Биёед дар амал санҷем. Файл созем
test1.php ва дар он рамзи зерин ҷойгир кунем:
<?php
session_start();
$_SESSION['test'] = 'abcde'; // ба сессия менависем
?>
Ва дар файли test2.php - рамзи зерин:
<?php
session_start();
echo $_SESSION['test']; // аз сессия мехонем
?>
Ҳоло барои оғоз файлро дар браузер кушоед
test1.php, ва сипас test2.php.
Ҳангоми кушодани файли дуюм дар браузер чизе чоп мешавад,
ки дар файли аввал ба сессия навишта шуда буд.
Ду файл созед. Ҳангоми оғози файли аввал ду ададро ба сессия нависед, ва ҳангоми оғози файли дуюм - ҷамъи ин ададҳоро ба экран чоп кунед.