Праздничное настроение с HostCMS!
Дарим скидки до 20% при приобретении лицензий
и скидки на продление периода поддержки*

Выдано 119411 лицензий

Сессии

Сессии позволяют сохранять пользовательские данные между запросами. Хранение сессий в HostCMS осуществляется в базе данных (по умолчанию) или в Redis (с версии HostCMS 6.8.3, используя php-redis версии 2.6.12+).

Доступ к данным сессии

К данным сессии доступ получается через суперглобальный массив $_SESSION.

$value = $_SESSION['foo'];

Если вы не уверены в наличии требуемого значения в сессии, то используйте Core_Array::getSession(), при отсутствии значения метод вернет NULL

$value = Core_Array::getSession('foo');

То же действие, только с возвратом значения по умолчанию 'default' в случае, если индекса foo в сессии нет

$value = Core_Array::getSession('foo', 'default');

Открытие и закрытие сессии

// Открыть сессию
Core_Session::start();

// Закрыть сессию
Core_Session::close();

// Проверить, запущена ли сессия
Core_Session::isStarted();

Открывать сессию необходимо каждый раз перед там, как записать данные в $_SESSION, дополнительно проверять наличие открытой сессии перед вызовом Core_Session::start() не требуется, проверка содержится внутри метода start().

Если сессия ранее уже была открыта и у пользователя в cookies содержится идентификатор сессии, то такая сессия будет открыта автоматически.

Времени жизни сессии

При старте сессии, время жизни устанавливается равным времени, указанном в session.gc_maxlifetime, изменить время жизни сессии можно до или уже после запуска сессии методом Core_Session::setMaxLifeTime($maxlifetime, $overwrite = FALSE)

// Время жизни сессии в секундах (1 сутки с момента последней активности)
Core_Session::setMaxLifeTime(86400);

Время жизни сессии будет установлено в том случае, если оно больше ранее заданного. Чтобы перезаписать время жизни сессии в любом случае, вторым параметром передайте TRUE.

Конфигурационный файл

Указание способа хранения сессий и опций осуществляется в основном конфигурационном файле modules/core/config/config.php в опции session.

При хранении сессии в базе данных задаются 2 параметра:

  • driver — название драйвера;
  • class — имя класса драйвера (необязательный параметр).
	'session' => array(
		'driver' => 'database',
		'class' => 'Core_Session_Database'
	),

Для хранения в Redis требуется больше параметров:

  • driver — название драйвера;
  • class — имя класса драйвера (необязательный параметр);
  • server — адрес сервера, по умолчанию 127.0.0.1;
  • port — порт, по умолчанию 6379;
  • auth —авторизационный пароль, если сервер не требует пароль, то не устанавливайте опцию или укажите NULL;
	'session' => array(
		'driver' => 'phpredis',
		'class' => 'Core_Session_Phpredis',
		'server' => '127.0.0.1',
		'port' => 6379,
		'auth' => 'авторизационный пароль'
	),

Не нашли ответ на свой вопрос в документации? Направьте обращение в или онлайн чат.

Комментарии

  • Без темы

    куда смотреть? Настройки сервера или админка?

    17.09.2018 10:24:40 iNik

    Без темы

    Полагаю нужно разбираться на месте и смотреть везде.

    17.09.2018 12:52:39 hostcms
  • Подключение REDIS

    Подключил на BEGET услугу REDIS, внес изменения в конфигурационный файл, как у вас написано. После авторизации в админпанели постоянный запрос пароля, без возможности что-либо сделать. В чём может быть причина, не подскажете?

    17.09.2018 09:53:47 iNik

    Без темы

    Видимо что-то работает неправильно.

    17.09.2018 10:09:32 hostcms