Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

Идентификатор сессии, использование механизма сессии

Для передачи идентификатора сессии со стороны клиента используется два способа:

  • Передача идентификатора сессии непосредственно в строке адреса (например, так: http://127.0.0.1/ex7.php?PHPSESSID=af65756756fghgfuyiu890tyi0iu7780);

  • Передача идентификатора сессии с использованием механизма cookies.

Механизм cookies поддерживается браузером для хранения клиентских переменных в файлах на стороне клиента. Механизм cookies является расширением протокола HTTP и более привлекателен с точки зрения обеспечения безопасности, чем прямая передача имени сессии в строке адреса. Минус данного механизма – cookies по умолчанию отключены в большинстве браузеров, что может потребовать от пользователя дополнительных действий по настройке браузера.

Для использования механизма сессий применяются следующие функции:

Наименование функции

Назначение функции и возвращаемое значение

 

Параметры

 

session_start

Начать новую сессию или восстановить уже существующую. Уже существующая сессия восстанавливается, если соответствующий параметр передан от клиента, не истек тайм-аут и т.п. – PHP сам определяет, когда нужно создать новую сессию, а когда восстановить уже существующую.

Функция возвращает пустое значение.

Вызова session_start можно избежать, если в php.ini параметр:

session.auto_start=1

Нет.

session_id

Получить идентификатор сессии. Функция возвращает идентификатор сессии

Нет.

session_register

Зарегистрировать имя сессионной переменной.

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

session_unregister

Удалить сессионную переменную.

Имя удаляемой переменной.

isset

Проверить, не равно ли значение переменной NULL. Возвращает true, если значение не равно NULL, в противном случае false.

Нам эта функция нужна для проверки существования сессионной переменной.

Переменная.

Зарегистрированные session_register переменные доступны через массив $_SESSION. Для доступа к переменной в качестве ключа в массиве $_SESSION нужно указать имя переменной. Присваивание значений переменным также выполняется через массив $_SESSION. В современных версиях PHP не рекомендуется использование функции session_register – новая сессионная переменная появляется при присваивании элементу массива $_SESSION значения (если переменной с таким именем ранее не было создано, то будет добавлен новый элемент массива). Удаление переменной выполняется также, как и обычно для элемента массива, т.е. путем вызова функции unset.

Для управления сессиями в php.ini могут быть установлены следующие дополнительные параметры:

Наименование параметра

Назначение

session.use_cookies

Если равен 1, то включена работа с cookies. По умолчанию параметр равен 1.

session.cookie_lifetime

Задает время жизни переменных, переданных через cookies в секундах, фактически, при использовании механизма cookies, задает максимальное время существования сессии. По умолчанию этот параметр равен 0, т.е. переменные будут недействительны только после завершения работы клиентского ПО.

session.name

Имя переменной, в которой хранится идентификатор сессии. По умолчанию параметр равен PHPSESSID.

session.cache_expire

Переменные сессии устаревают через указанное в параметре число минут. По умолчанию параметр равен 180.