Задать вопрос

Как работать с сессиями в MODx?

Написал сниппет, который записывает в сессию данные, но проблема в том, что работает сниппет только у авторизованных пользователей. Если неавторизованный пользователь посещает страницы - записи в сессию не производятся. Как это можно исправить?
  • Вопрос задан
  • 5933 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
Symphony
@Symphony
Пишите в куки
Ответ написан
samoilenkoevgeniy
@samoilenkoevgeniy
Lead Full-Stack Web Developer
Смотря как вы вообще производите запись. Покажите хотябы код сниппета, чтоли
Ответ написан
65536
@65536
Странно. У меня все работает. Если хотите доступ к сессии из кастомного скрипта, то нужно в его начале добавить примерно такой код:

require_once '../../config.core.php'; // путь от вашего скрипта до файла конфига
require_once MODX_CORE_PATH . 'config/' . MODX_CONFIG_KEY . '.inc.php';
require_once MODX_CORE_PATH . 'model/modx/modx.class.php';

$modx = new modX();
$modx->initialize('web');


session_start() вызывать не нужно, оно при инициализации вызывается. В сниппетах тоже не нужно вызывать.

Вот что действительно понадобилось (в кастомных скриптах), так это дописать в конце
session_write_close();
без него происходил какой-то рандом, то сохранит, то не сохранит, то какие-то устаревшие данные через 10 минут появляются. Попробуйте в конце сниппета своего дописать с собакой спереди.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы