Сесията е начин за запазване на информация, която се ползва при преминаването през множество страници. За разлика от PHP бисквитките информацията не се запазва на компятъра на потребителя.
Какво са PHP сесии?
Когато работим с някакво приложение, ние го отваряме, правим някакви промени и след това го затваряме.
Това много прилича на „сесия“ – не мислите ли?
Компютъра знае кои сме ние. Също така знае кога стартираме уеб базираното приложение и кога го затваряме.
Но в интернет приложенията имат „проблем“ с това: уеб сървъра не знае кои сме ние и не знае какво правим, поради HTTP протокола, който не може да предава някакво състояние.
Променливите, които се запазват в сесиите решават този проблем като запазват потребителска информация,
която приложението може да ползва при преминаване от една страница на друга.
Тази информация може да бъде например потребителско име, любим цвят и други.
По подразбиране сесиите са активни докато потребителя не затвори браузъра – респективно табът на браузъра.
В крайна сметка променливите на сесията съдържат информация за един потребител и са достъпни за всички страници в едно приложение.
Интересно:
Ако се нуждаем от перманентно запазване на данни може би е по-подходящо да направим това в някаква база данни.
Стартиране на PHP Сесия
Това се случва с помощта на функцията session_start()
.
Стойноста на сесията се придава на PHP глобалната променлива $_SESSION.
Създаването на нова страница именувана „demo_session1.php“ ни позволява да стартираме нова сесия като зададем някои стойности:
Важно: PHP функцията session_start()
трябва да е най-първото нещо в документа ни преди всякакъв HTML таг.
Присвояване на PHP Сесиини стойности
Следва да създадем следващата ни страница наречена „demo_session2.php“.
От тази страница ние ще достъпваме информацията, която сме задали на предходната(„demo_session1.php“).
Обърнете внимание на това, че сесийните променливи не преминават всяка за себе си от страница към страница, а вместо това те се извличат от сесията която сме отворили в началото на всяка страница с помощта на функцията session_start()
.
Също трябва да знаем и това, че всички сесийни променливи са запазени в глобалната $_SESSION променлива:
Друг начин да покажем/видим всички стойности на сесийните променливи за една потребителска сесия е като заредим следният код:
Как работи това? От къде знае, че съм аз?
Обикновено сесиите задават потребителски ключ на компютъра на потребителя, който изглежда по подобен начин:
765487cf34ert8dede5a562e4f3a7e12
.
След това при отваряне на нова страница, и съответно отваряне на нова сесия компютъра сканира за потребителски ключ.
Ако се намери такъв сесията бива достъпена, в противен случай се стартира нова сесия.
Променяне на PHP Сесийна променлива
За да променим сесийна променлива просто я презаписваме както е показано в примера о-долу:
Премахване или как да изтрием PHP Сесия
За да премахнем глобална сесийна променлива и да унищожим сесията използваме session_unset()
и session_destroy()
функциите: