raa
(Rudenkosasha)
1
не могу понять что происходит.
работаю с сессиями через CHttpSession.
сохраняю данные в одном экшене, в другом экшене эти данные видно, в третьем нет.
как такое может быть и какие ограничения я упустил ?
работаю примерно так
// save
$session = new CHttpSession;
$session->open();
$session['products'][$pid] = $qty + Cart::getQty($pid);
$session->close();
// get
$session = new CHttpSession;
$session->open();
return (int)$session['products'][$pid];
Rsol
(Slava Rudnev)
2
Однозначного ответа не дам, но сталкивался с подбным, что интересно решил за счет не хранения в сессии архивов.
Т.е. в $session[‘products’] хранить строку с определенным разделителем.
Rsol
(Slava Rudnev)
4
То что неудобно - однозначно. Надо выделить время да покопаться в коде.
NickSun
(Andrei Nikonov V)
5
А для чего вы закрываете сессию ($session->close()) и что будет если её не закрыть?
Ответ на ваш вопрос: прочитать сессию можно так Yii::app()->session[‘products’][$pid];
raa
(Rudenkosasha)
7
сегодня поковыряюсь в классе, посмотрю как он там работает
raa
(Rudenkosasha)
8
посмотрел код этого класса, ничего особенного в нем нет.
обычная обертка для сессий.
но странная проблема, делаю в лэйауте
print_r(session_get_cookie_params());
в итоге, в некоторых контролах параметры нулевые, а в некоторых такие какие установлены в конфиге.
Контролы/Экшены обычные, никаких особых настроек, никаких спец условий.
Если это имеет значение, то приложение построено по этому принципу.
Конкретную работу с сессиями виду только в рамках фронтэнда.
PS проверял куки, у всех путь КОРЕНЬ.
я просто не знаю куда копать (
raa
(Rudenkosasha)
9
похоже факап был из-за localhost, с доменном все работает.