Зачем нужны сессии.Механизм работы сессий.
Зачем нужны сессии.Механизм работы сессий.
Зачем нужны сессии
Сессия представляет собой механизм, позволяющий хранить некоторые данные, индивидуальные для каждого пользователя (например, его имя и номер счета), между запусками сценария.
В Web-программировании есть один класс задач, который может вызвать довольно много проблем, если писать сценарий "в лоб". Речь идет о слабой стороне CGI - невозможности запустить программу на длительное время, позволив ей при этом обмениваться данными с пользователями.
Представте, что мы пишем форму, но в ней такое большое число полей, что было бы глупо поместить их на одну страницу. Нам нужно разбить процесс заполнения формы на несколько этапов, или стадий, и представить их в виде отдельных HTML-документов.Например, в первом документе с диалогом у пользователя может запрашиваться его имя и фамилия, во втором - данные о его месте жительства, и в третьем - номер кредитной карточки. В любой момент можно вернуться на шаг назад, чтобы исправить те или иные данные. Наконец, если все в порядке, накопленная информация обрабатывается - например, помещается в базу данных.
Реализация такой схемы оказывается для Web-приложений довольно нетривиальной проблемой. Действительно, нам придется хранить все ранее введенные данные в каком-нибудь хранилище, которое должно аннулироваться, если пользователь вдруг передумает и уйдет с сайта. Для этого можно использовать функции сериализации и файлы. Однако ими мы решаем только половину проблемы: нам нужно как то привязать конкретного пользователя к конкретному временному хранилищу. Действительно, предположим, мы этого не сделали. Тогда, если в момент заполнения какой-нибудь формы одним пользователем на сайт зайдет другой и тоже попытается ввести свои данные, получится белеберда.Все эти проблемы решаются при помощи сессий.
Механизм работы сессий
Для начала должен существовать механизм, который бы позволил PHP идентифицировать каждого пользователя, запустившего сценарий. То есть при следующем запуске PHP нужно однозначно определить, кто его запустил: тот же человек, или другой. Делается это путем присвоения клиенту так называемого уникального идентификатора сессии. Чтобы этот идентификатор был доступен при каждом запуске сценария, PHP помещает его Cookies браузера. Теперь, зная идентификатор (дальше SID), PHP может определить, в каком же файле на диске хранятся данные пользователя.
Немного о том, как сохранять переменную (обязательно глобальную) в сессии. Для этого мы должны ее зарегистрировать с помощью специальной функции. После регистрации мы можем быть уверены, что при следующем запуске сценария тем же пользователем она получит то же самое значение, которое было у нее при предыдущем завершении программы. Это произойдет потому, что при завершении сценария PHP автоматически сохраняет все переменные, зарегистрированные в сессии, во временное хранилище. Конечно, можно в любой момент аннулировать переменную - вычеркнуть ее из сессии, или же уничтожить вообще все данные сессии.
Где же находиться то промежуточное хранилище, которое использует PHP? Вообще говоря, вы вольны сами это задать, написав соответствующие функции и зарегистрировав их как обработчики сессии. Впрочем, делать это не обязательно: в PHP уже существуют обработчики по умолчанию, которые хранят данные в файлах. Если вы не собираетесь создавать что-то особенное, вам они вполне подойдут.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Зачем нужны виртуальные машины
Зачем нужны виртуальные машины Сегодня виртуальные машины переживают второе рождение. Один из «отцов» современного поколения виртуальных машин, профессор Розенблюм[1], объясняет их возрождение двумя основными причинами:? появлением большого числа разных операционных
2.8 Зачем нужны «легкие» среды?
2.8 Зачем нужны «легкие» среды? В то время, как сама оконная система «Икс» много лет является фактическим отраслевым стандартом, лежащие «над» нею слои графической среды не стандартизованы. Какую-либо классификацию графических сред дать затруднительно, однако самым
1.5.2. Зачем нужны группы
1.5.2. Зачем нужны группы Предположим, что в системе зарегистрировано несколько пользователей- den, lena и guest. Первые два пользователя работают над одним проектом, поэтому их целесообразно поместить в одну группу.Но группы нужны не только для косметики. При создании
Зачем нужны оптимизаторы?
Зачем нужны оптимизаторы? Описанная в предыдущих главах схема охватывает практически все процессы создания и наполнения портала, начиная с составления семантического ядра и заканчивая размещением готовых текстов. При этом до сих пор у нас практически не было работы для
Зачем компании нужны друзья на Facebook?
Зачем компании нужны друзья на Facebook? Если вы знаете ответ на данный вопрос, то можете пропустить эту главу. Если сомневаетесь в ответе, давайте порассуждаем вместе. Я знаю как минимум пять причин:1. Поддержание отношений с имеющимися клиентами.2. Поиск новых клиентов через
Бонус № 1. Зачем на самом деле нужны скидки в интернет-магазине
Бонус № 1. Зачем на самом деле нужны скидки в интернет-магазине Прежде всего нужно понимать, что скидки давно являются слабоэффективным инструментом, потому что их используют если не все, то уж точно большинство интернет-магазинов. Чаще всего единственная задача скидок и
Бонус № 2. Двухшаговые продажи и зачем они нужны в интернет-магазине
Бонус № 2. Двухшаговые продажи и зачем они нужны в интернет-магазине Наверное, вы убедились на собственном опыте, что реклама в Интернете стала работать хуже. Продажи «в лоб» давно перестали приносить желаемый результат Клиенты норовят купить у ваших конкурентов, у
2.8 Зачем нужны «легкие» среды?
2.8 Зачем нужны «легкие» среды? В то время, как сама оконная система «Икс» много лет является фактическим отраслевым стандартом, лежащие «над» нею слои графической среды не стандартизованы. Какую-либо классификацию графических сред дать затруднительно, однако самым
9.1. Что такое макросы и зачем они нужны
9.1. Что такое макросы и зачем они нужны Достаточно часто пользователю приходится повторять те или иные команды в определенной последовательности (например, оформлять текст курсивом, размером 10, гарнитурой шрифта Arial). Чтобы произвести такое небольшое форматирование,
Механизм слежения за завершением работы компьютера
Механизм слежения за завершением работы компьютера Существует возможность активации механизма слежения за завершением работы компьютера (рис. 3.1). По умолчанию он активируется только на серверных версиях Windows. Рис. 3.1. Окно слежения за завершением работы
Зачем нужны ярлыки?
Зачем нужны ярлыки? Особый тип файлов — ярлыки. Ярлык только указывает на какой-либо файл или папку, которые сами находятся в другом месте. О том, что файл является ярлыком, говорит маленькая стрелка на его значке. Ярлыки удобно помещать на Рабочий стол.Двойной щелчок на
Нетбуки: зачем они нужны и из чего выбирать Олег Нечай
Нетбуки: зачем они нужны и из чего выбирать Олег Нечай Опубликовано 29 декабря 2010 года Появившийся в октябре 2007 года недорогой субноутбук Asus Eee PC был «потребительским» ответом на «стодолларовый» ноутбук XO-1 для детей развивающихся стран,
Третья сила: зачем Nokia и Microsoft нужны друг другу Олег Парамонов
Третья сила: зачем Nokia и Microsoft нужны друг другу Олег Парамонов Опубликовано 11 февраля 2011 года 11 февраля компании Nokia и Microsoft сообщили о долговременном партнёрстве. Nokia будет выпускать смартфоны на основе Windows Phone 7 и переведёт Symbian и всё ещё