В практике для создания Интернет магазинов в Перми чаще всего используется технология PHP. Поэтому мы предполагаем, что Ваш Интернет магазин создается именно на этой технологии, и дальнейший ответ будет опираться на синтаксис PHP. Хотя принцип работы с сессиями совершенно аналогичен во всех технологиях создания Интернет магазинов и прочих интерфейсов с авторизацией.
Сессии - это механизм, позволяющий однозначно идентифицировать клиента (а точнее его браузер) для корректной многофазовой работы с каталогом Интернет магазина и последующим оформлением заказа.
Механизм сессий автоматически создает специальные служебные файлы и фиксирует в них идентификатор сессии. Такой идентификатор передается из броузера к серверу и обратно. Идентификатор сессии - это обычная переменная. По умолчанию имя переменной - PHPSESSID. Сессии используют стандартные способы передачи данных (POST/GET), но в зависимости от режима настройки PHP передаются либо в куках, либо в качестве дополнительного поля формы.
В файле php.ini имеются две настройки:
session.use_cookies - если равно 1, то PHP передает идентификатор в куках (если 0 - то не передает). Разумеется, возможна проблемная ситуация, когда броузер по своим настройкам безопасности не сохраняет и не передает куки сессий. В этом случае работа с Интернет магазином становится невозможной.
session.use_trans_sid - если равно 1, то PHP передает идентификатор сессии, добавляя его к URL адресу и формам (если 0 - то не передает). То есть, обычная ссылка автоматически превращается в конструкцию:
<a href='/index.php?PHPSESSID=7gsd4g53ghye783'>Наша ссылка</a>
а к формам добавляется новое скрытое поле (элемент hidden):
<input type='hidden' name='PHPSESSID' value='7gsd4g53ghye783'>
В конфигурационных настройках PHP на реальном хостинге обычно включены обе опции. Это означает, что среда PHP сначала выставляет куку. А затем при следующем запросе, если куки поддерживаются (возвращается броузером клиента), то среда PHP переключается на работу с куками и не вносит изменения в текст ссылок и элементы форм.
Если же куки не поддерживаются, то PHP начинает добавлять идентификатор сессии к ссылкам и формам.
В любом случае сессия начинается с конструкции использования массива сессии и получения/занесения значений в служебный массив $_SESSION
session_start();
$_SESSION['dostup']='yes';
Конструкция session_start() пишется один раз в самом верху каждого сценария, в котором необходимо работать с сессиями. В другом сценарии можно проанализировать значение переменной доступа и в случае отсутствия в ней необходимого значения, выполнить принудительную переадресацию. Это выглядит приблизительно следующим образом:
session_start(); if ($_SESSION['dostup']!='yes') { header("Location: /login.php"); exit; }
Для уничтожения переменной сессии следует выполнить:
unset($_SESSION['dostup']); session_unregister('dostup');
Разумеется, можно написать свой персональный механизм сессий, но делать это при наличии стандартного и надежно работающего способа организации пользовательских сеансов неразумно. Надеемся, что после наших пояснений ваш Интернет магазин будет создан в самое ближайшее время. |