Что такое сеанс? Это способ хранения данных на сервере без использования базы данных. Когда пользователь переходит со страницы на страницу, каждый запрос генерирует новый набор переменных, которые будут использоваться для помощи в создании страниц, которые нужно видеть пользователю. Переменные являются временными, а это означает, что когда пользователь посещает другую страницу, эти переменные в вашем коде исчезают. Чтобы иметь постоянство данных до сих пор, мы использовали базу данных.

Если вам нужна постоянная сохранность данных, вы должны продолжать использовать базу данных. Но что, если вам нужно хранить некоторые данные, которые используются только на протяжении всего сеанса пользователя (время, когда он активно посещает ваше веб-приложение)? Вы все еще можете использовать базу данных? Конечно. Но это медленнее и несколько ненужно.

В PHP есть такая штука, как сеанс. Сеанс — это переменная $_SESSION, которая позволяет сохранять данные. Переменная $_SESSION является переменной суперглобального массива.

Сеансы включены по умолчанию и не требуют каких-либо внешних библиотек или настроек.

Как сервер не путает данные пользователя с данными других пользователей? Когда сеанс инициализируется, он устанавливается в соответствии с уникальным идентификатором пользователя, который генерируется PHP для каждого пользователя.

Чтобы сеансы сохраняли данные на разных страницах, каждая страница, использующая $_SESSION, должна быть запущена с функцией session_start(). Это будет вверху вашего файла.

Пример

Достаточно объяснений, давайте посмотрим на это в действии. Мы создадим два файла: cart.php и add_item.php. На странице cart будет отображаться общее количество, а на странице add_item каждый раз к значению total будет добавляться 100.

Давайте сначала посмотрим на cart.

Начнем с вызова функции session_start(). Это позволит нашей странице использовать переменную $_SESSION. Далее мы проверим, существует ли ключ массива $_SESSION['total']. Помните, что суперглобальная переменная $_SESSION — это массив. Если он не существует, мы инициализируем его значением 0. Далее мы покажем итог пользователю.

В первой итерации при посещении корзины мы получим: The total price for items in your cart is: 0.

Далее идет страница add_item.

Сеанс начинается снова. Нам нужно проверить, установлена ​​ли общая сумма, поскольку пользователь может посетить эту страницу до того, как он посетит корзину. Если сеанс не был установлен, $_SESSION['total'] будет инициализирован до 100. Если установлено total, то мы просто увеличим на 100.

После того, как вы посетите страницу, нажмите на ссылку Visit the cart, и вы увидите, что ваша общая сумма теперь составляет 100. Снова вернитесь на страницу add_item и еще раз посетите страницу cart, чтобы увидеть, как значение total увеличилось до 200. Это возможно только потому, что вы используете суперглобальный файл $_SESSION.

Чтобы очистить total, мы могли бы просто установить $_SESSION['total’] = 0. Что, если бы мы захотели полностью удалить сумму из переменной $_SESSION? Мы используем функцию unset().

Чтобы полностью удалить сеанс для конкретного пользователя, используйте функцию session_destroy().

Краткое содержание

Это когда дело доходит до сессий. Это временное сохранение данных на стороне сервера. Далее мы рассмотрим файлы cookie, которые обеспечивают сохранение данных на стороне клиента.

Дино Кайич в настоящее время является руководителем отдела информационных технологий в Absolute Biotech, материнской компании LSBio (LifeSpan BioSciences, Inc.), Absolute Antibody, Kerafast, Everest BioTech, Nordic MUbio и Exalpha. ». Он также является генеральным директором MyAutoSystem. У него есть B.S. в области компьютерных наук, по специальности биология и более десяти лет опыта разработки программного обеспечения. Его опыт включает в себя создание приложений для электронной коммерции на уровне предприятия, разработку программного обеспечения на основе исследований и содействие распространению знаний посредством письма.

Вы можете связаться с ним в LinkedIn, подписаться на него в Instagram или подписаться на его публикацию в Medium.

Прочитайте все истории Дино Каджика (и тысяч других авторов на Medium). Ваш членский взнос напрямую поддерживает Дино Кайича и других писателей, которых вы читаете. Вы также получите полный доступ ко всем историям на Medium.