PHPда сессиялар
Биз ўз браузеримизда веб-саҳифани кўрганимизда, ушбу саҳифанинг PHP скрипти аллақачон ишлаб бўлиб, bиз ҳақимизда унутган бўлади. Шу сабабдан, биз сайтнинг бир саҳифасидан иккинчисига ўтганимизда - PHP скрипти олдинги саҳифадан маълумотларни, масалан, ўзгарувчиларнинг қийматларини, эслай олмайди.
Аммо, бундай механизм, ҳатто fойдаланувчи танловини ёки fойдаланувчи авторизациядан ўтганини эслаш учун ҳам, жудa зарур.
PHPда fойдаланувчи маълумотларини сайт саҳифалари ўртасида сақлаш учун сессиялар мўлжалланган. Биз қандайдир маълумотни сессияга ёза оламиз ва кейинги ишлашида ёки сайтнинг бошқа скриптида уни ўқий оламиз. Сессия ёрдамида fойдаланувчиларнинг авторизациясини, интернет-дўкон саватини ва бошқаларни амалга ошириш мумкин.
Fойдаланувчи сессияси серверда сақланади. Бу эса мaнгу эмас, ҳар ярим соатда - агар fойдаланувчи шу муддат ичида сайтга ҳеч қандай мурожаат қилмаса, у ҳолда унинг сессияси ўчирилади ва бўш бўлади.
Демак, PHPда сессиялар билан қандай ишлашни
кўриб чиқайлик.
Сессияга бирон нарса ёзиш учун аввал
уни инициализация қилиш (бошлаш) керак, бу session_start
функцияси ёрдамида бажарилади:
<?php
session_start();
?>
Инициализациядан сўнг биз бирон нарсани
сессияга ёза оламиз ёки ундан бирон нарсани ўқий оламиз.
Бу суперглобал $_SESSION массиви
ёрдамида амалга оширилади.
Амалиётда синаб кўрайлик. test1.php файлини яратамиз
ва унга куйидаги кодни joylaymiz:
<?php
session_start();
$_SESSION['test'] = 'abcde'; // сессияга ёзамиз
?>
test2.php файлида эса куйидаги код бўлсин:
<?php
session_start();
echo $_SESSION['test']; // сессиядан ўқиймиз
?>
Энди бошлаш учун браузерда test1.php файлини oching,
сўнгра test2.php файлини oching.
Иккинчи файл ochilganda, браузерда биринчи файлда
сессияга ёзилган нарса чиқади.
Иккита файл яратинг. Биринчи файл ишлаганда сессияга иккита сонни ёзинг, иккинчи файл ишлаганда эса - экранга шу сонлар йиғиндисини чиқаринг.