сессии CHttpSession

не могу понять что происходит.

работаю с сессиями через 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];



Однозначного ответа не дам, но сталкивался с подбным, что интересно решил за счет не хранения в сессии архивов.

Т.е. в $session[‘products’] хранить строку с определенным разделителем.

хм, странный баг

не очень то это удобно

но спасибо

То что неудобно - однозначно. Надо выделить время да покопаться в коде. :slight_smile:

А для чего вы закрываете сессию ($session->close()) и что будет если её не закрыть?

Ответ на ваш вопрос: прочитать сессию можно так Yii::app()->session[‘products’][$pid];

  1. To complete and send out session data, call close(); Не проверял что будет, но могу предположить что данные не изменятся.

  2. знаю, этот вариант идентичен тому что я делаю, ну и как результат эффект одинаковый (

сегодня поковыряюсь в классе, посмотрю как он там работает

посмотрел код этого класса, ничего особенного в нем нет.

обычная обертка для сессий.

но странная проблема, делаю в лэйауте


print_r(session_get_cookie_params());

в итоге, в некоторых контролах параметры нулевые, а в некоторых такие какие установлены в конфиге.

Контролы/Экшены обычные, никаких особых настроек, никаких спец условий.

Если это имеет значение, то приложение построено по этому принципу.

Конкретную работу с сессиями виду только в рамках фронтэнда.

PS проверял куки, у всех путь КОРЕНЬ.

я просто не знаю куда копать (

похоже факап был из-за localhost, с доменном все работает.