HomeApache › Работаем с несколькими сессиями в PHP

Работаем с несколькими сессиями в PHP

Сессии в PHP нужны для сохранения различных данных при работе с клиентскими запросами. Например чтобы знать, что несколько запросов разнесенные по времени к серверу принадлежат одному пользователю, то для него открывается сессия.

Создаем сессию командой session_start();

При этом на сервере создается файл с данными о сессии, а клиенту отправляется HTTP заголовок:

Set-Cookie: PHPSESSID=c3700a86946ba8a60c6397d7e388a801; path=/

Клиент должен при каждом запросе передавать в заголовке это значение куки. Таким образом сервер и PHP будет понимать, что этот тот самый клиент.

Теперь можно используя глобальную переменную $_SESSION записывать и считывать значения из файла с данными на сервере. Доступ, к которому, имеет PHP на сервере.

Если не работаю куки на клиенте, то ID сессии можно передавать от клиента запросами GET и POST.

По умолчанию сессия для клиента создается одна и имеет имя session.name прописанное в конфигурации. В нашем случае это PHPSESSID.

Функция session_name() позволяет задать другое имя или вернуть текущее.

Таким образом мы можем создавать несколько сессий для одного клиента.

session_name(«SESSID1»);

session_start();

$_SESSION[«myvar»] = «session_var1»;

А в другом файле:

session_name(«SESSID2»);

session_start();

$_SESSION[«myvar»] = «session_var2»;

Соответственно мы зарегистрируем две сессии с разными ID и myvar в них будет отличаться.

Получить ID сессии можно функцией session_id()

Данные, сохраняемые в файле сессии могут быть любыми, которые можно сериализовать. Например нельзя сохранить в файле сессии ресурс PHP

Leave a Comment