Наверх

Сессии

Для работы с сессией описан класс Session в файле includes/session.php. Объект класса создается при инициации сайта и доступен через переменную $this->diafan->_session.

Внимание!
Методы данного класса являются системными. Их изменение может вызвать нестабильную работу всей системы.

Свойства

var name – название сессии.

Пример:

echo 'Название сессии: '.$this->diafan->_session->name;
// выведет:
// Название сессии: SESS629188aff6a3c660dc46dedf8724eb61

var id – идентификатор сессии.

Пример:

// используем сессию как идентификатор для поиска
// активированных купонов на скидку для текущего пользователя
$coupon_id = DB::query_result("SELECT coupon_id FROM {shop_discount_person}"
." WHERE session_id='%s'", $this->diafan->_session->id);

Методы

void init () – Стартует сессию.

Пример:

// запускаем сессию
$this->diafan->_session->init();

Фукнции open, close, read, write, dc, destroy являются пользовательскими функциями хранения сессии. Они подключаются через PHP-функцию session_set_save_handler.

boolean true open () – Открывает сессию.

boolean true close () – Закрывает сессию освобождает ресурсы.

string read (string $key) – Читает сессию.

  • string $key: идентификатор сессии

return true write (string $key, string $value) – Записывает данные в сессию.

  • string $key: идентификатор сессии
  • string $value: серилизованные данные сессии

void gc () – Чистит мусор - удаляет сессии старше $lifetime.

void destroy ([string $key = '']) – Удаляет ссессию.

  • string $key: идентификатор сессии

Пример:

// удаляем сессию, когда пользователь нажал «Выйти»
$this->diafan->_session->destroy();

void duration () – Определяет продолжительность сессии.

Пример:

// если при авторизации отмечена опция «Чужой компьютер»,
// то длительность сессии живет до закрытия окна браузера
// иначе длительность сессии устанавливается сроком на 2 недели
$this->diafan->_session->duration();

Стандартно куки для сессия храняться две недели.

Ваши комментарии и дополнения

Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.