Статьи,обзоры,справочники по PHP

Приступим к работе с сессиями


Для начала решим, как правильно должны начинаться наши скрипты и что мы собираемся хранить в сессиях. Предложение N1 - несколько строк, которые будут отвечать за правильный запуск сессий и обработки новых пользователей, которым надо записать какие-то переменные для начала пработы, хорошо бы поместить в отдельный файл. Итак, файл index.php будет главным на сайте, а описанные команды мы поместим в default.php.

Предложение N2 - наша программа будет содержать много функций, в которых иногда будет происходить доступ к переменным сессий, следовательно последние надо будет делать глобальными в функциях. Если у нас будет десяток переменных, то нам придется писать большую строку для объявления переменных глобальными. Если же мы зарегистрируем в сессиях только одну переменную-массив с коротким названием, то нам будет легко ее прописывать глобальной и легко обращаться. Итак, предложение 2 - используем переменную $s, все необходимые параметры пишем в $s как в массив: $s[название]=значение.

Что записывать всем пользователям по умолчанию? Давайте, при входе нового посетителя, будет объявлять переменную $s[start], в которой запишим время входа пользователя. Чтобы получить текущее время (число) используют time(). Больше ничего делать с новыми посетителями не надо. На главной страние мы будем выводить фразу "Добро пожаловать!", если человек впервые тут и фразу "Вы пришли к нам ?? секунд назад". Подсчитать кол-во секунд весьма просто: time() - текущее время, $s[start] - уже прошедшее (когда мы произвели запись $s[start]). Таким образом, надо от большего отнять меньшее. Пишем эту программу.

Файл default.php:

Файл index.php (или любой файл вашего будущего сайта)


Данный пример поможно посмотреть тут: /php/s/example1/



Обратите внимание, что программа при выключенных куках работать не будет. Для его работоспособности надо при первом обращении пользователя сделать header("Location: $PHP_SELF?".SID);

(разумеется, при этом человек не увидет приветствие).

На этом пока придеться закончить, остальное допишу через несколько дней. Пока вы можете смотреть уже готовые примеры этого сайта, использующие сессии:

  • простой пример работы с сессиями
  • защита от двойного сабмита (SUBMIT формы)
  • виртуальный магазин


  • Содержание раздела