Сесии в PHP

Сесията е начин за запазване на информация, която се ползва при преминаването през множество страници. За разлика от 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() функциите:

Опитайте сами »