(PHP 4, PHP 5, PHP 7, PHP 8)
session_name — Получает и (или) устанавливает название текущей сессии
Функция session_name() возвращает название текущей
сессии. При передаче аргумента в параметр name
функция session_name() обновит название и вернёт
старое название сессии.
Функция session_name() изменяет название сессии в блоке данных cookie HTTP-протокола,
а при включённой директиве session.use_trans_sid —
в содержимом вывода, если для сессии указали новое имя name
.
Функция session_name() выдаёт ошибку уровня E_WARNING
,
если функцию вызвали после отправки cookie HTTP-протокола. Функцию
session_name() вызывают до вызова функции
session_start(), чтобы сессия работала правильно.
При запуске запроса название сессии сбрасывается на значение по умолчанию,
которое хранится в директиве session.name
. Поэтому
функцию session_name() требуется вызывать для каждого запроса,
и до вызова функции session_start().
name
Название сессии ссылается на название сессии, которое сохраняется в блоках данных
cookie и подставляется в URL-адреса содержимого страницы. Пример имени сессии: PHPSESSID
.
Для имён сессий разрешается указывать только буквенно-цифровые символы; лучше предпочесть
короткие и понятные названия, которое, например, увидят пользователи с включённым предупреждением
о блоках данных cookie. Имя текущей сессии изменится на значение аргумента, если
в параметр name
передали аргумент, значение которого не равно null
.
Название сессии нельзя составлять только из цифр, в имени требуется указать хотя бы одну букву. При нарушении требования PHP каждый раз будет генерировать новый идентификатор.
Функция возвращает имя текущей сессии. С параметром name
функция обновляет
название текущей сессии и возвращает старое название сессии или false
, если возникла ошибка.
Версия | Описание |
---|---|
8.0.0 |
Параметр name теперь принимает значение null .
|
7.2.0 | Функция session_name() проверяет статус сессии, раньше функция проверяла только статус cookie. Поэтому старую версию функции session_name() разрешалось вызывать после вызова функции session_start(), что иногда приводило к сбою PHP и неправильному поведению. |
Пример #1 Пример использования функции session_name()
<?php
/* Устанавливаем для имени сессии значение "WebsiteID" */
$previous_name = session_name("WebsiteID");
echo "Раньше сессия называлась '{$previous_name}'";
?>