Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

session php

session  php

Доброго времени суток дорогие друзья. Сегодня будут рассмотрены функции для работы с сессиями(сеансами) которые предоставляет нам php. При инициализации сессии создается уникальный идентификатор который храниться в виде сессионной куки в браузере пользователя для его идентификации. Сами же данные сессии хранятся на сервере. Cессии более предпочтительны чем те же самые куки. Потому что куки как представляют собой временные данные которые хранятся в браузере пользователя и бывают случаи когда их просто угоняют.

У кук и сессий есть общая особенность - время хранения. То есть данные в них не могут хранится вечно. И через определенный промежуток они умирают или разрегистрируются.

Для того чтобы работать с сессиями необходимо объявить старт.

session_start();

C помощью данной функции мы можем начинать работу с сессиями. Отмечу что старт сессий желательно помещать в самое начало документа до первого вывода данных в буфер или другого кода(html, javascript). Иначе произойдет ошибка.

Отлично! После старта сессий мы можем приступать к работе с ними. Все сессии и их данные хранятся в супер-глобальном массиве $_SESSION. И следовательно чтобы создать новую сессию и поместить туда данные нам достаточно написать:

$_SESSION['login'] = 'c7t4ctv4otco3cf64c36o6vo';

Здесь мы создали сессию с ключом(названием) 'login' и поместили туда определенные данные. Теперь если нам понадобится получить данные из сессии с ключом логин:

echo $_SESSION['login'];

нам достаточно обратится к супер-глобальному массиву $_SESSION и указать ключ 'login'.

Если мы хотим изменить хранимые данные в сессии нам достачно их переприсвоить

$_SESSION['login'] = 'new_data';

У каждой сессии есть свой уникальный идентификатор который сохраняется в сессионной куке в браузере пользователя и для того чтобы его получить мы можем воспользоваться:

echo session_id();

функцией session_id() . Мы также можем установить идентификатор сессии вручную:

session_id('new_id');

передав в данную функцию параметр в виде строки.

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

ini_set('session.gc_maxlifetime', 10000000);

здесь мы установили максимальное время жизни сессии в секундах с помощью функции init_set(). Теперь даже если вы выйдете из браузера и зайдете о потом обратно на свою страницу сеанс останется активным. Однако данная настройка не всегда работает. Ее альтернативой может стать специальная директива в конфигурационном файле htaccess.

php_value session.gc_maxlifetime 20000

Здесь мы выставили время жизни сессии в 20000 секунд. Помните что некоторые хостинг провайдеры запрещают устанавливать подобные директивы в файле htaccess на хостинге.

И напоследок давайте рассмотрим ситуацию когда нам необходимо уничтожить определенную сессию или весь сеанс.

Для того чтобы разрегистрировать (удалить) определенную сессию нам достаточно воспользоваться функцией unset()

session_start();

$_SESSION['login'] = 'c7t4ctv4otco3cf64c36o6vo';

echo $_SESSION['login'];

unset($_SESSION['login']);

echo $_SESSION['login'];

Как видите данные сессии с ключом 'login' второй раз не выводятся так как мы ее разрегистрировали c помощью unset().

Мы можем сразу удалить все сессии:

session_destroy();

или

unset($_SESSION);

Мы можем произвести удалении всех сессий через функцию session_destroy() или unset() помещая туда весь супер-глобальный массив $_SESSION.

На этом дорогие друзья данная статья подошла к концу. Надеюcь информация была для вас полезной.

На этом я с вами прощаюсь. Желаю успехов и удачи! Пока!

.

Оцените статью:

Статьи

Комментарии

Внимание!!! Комментарий теперь перед публикацией проходит модерацию

Все комментарии отправлены на модерацию

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm