session_name

(PHP 4, PHP 5, PHP 7, PHP 8)

session_nameПолучает и (или) устанавливает название текущей сессии

Описание

session_name(?string $name = null): string|false

Функция 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}'";

?>

Смотрите также