PDA

Просмотр полной версии : Запись переменных в сессию


lyova
24.01.2013, 04:24
Создаю екстеншен.
Мне нужно записать переменные в сесию. После перегрузки страницы они не записываються. Может нужно где то в тайпо включить сохранение сессий?



//если пишу это тогда могу использовать стандарный способ РНР ($_SESSION)
session_start();
//сами РНР сесии работают
print_r($_SESSION['r']);
$_SESSION['r'] = 1;
print_r($_SESSION['r']);


//хочу использовать тайпо для сохранения сессий
//сдесь пытаюсь вывести переменную из тайпо сесии (но ее нет)
echo "<br>session test=".$GLOBALS["TSFE"]->fe_user->getKey("ses","test")."-<br>";
//записываю переменную
$GLOBALS['TSFE']->fe_user->setKey("ses","test", '1');
$GLOBALS['TSFE']->fe_user->storeSessionData();
//проверяю записало ли. Выводит
echo "<br>session test=".$GLOBALS["TSFE"]->fe_user->getKey("ses","test")."-<br>";



В чём может быть проблемма? Использую typo3 4.5.

Может этот способ работает только если делаю вход как fe_пользователь? А чтобы работало не для залогиненых нужно использовать стандартный механизм работы с сессиями (писать в $_SESSION)? Хотя даже тогда сам обэкт $GLOBALS["TSFE"]->fe_user всё равно существует

Ивано++
24.01.2013, 16:23
При данном механзме который Вы хотите использовать
сессии пишутся в БД -

if ($GLOBALS["TSFE"]->loginUser){
#это для авторизированных пользователей
$myData = $GLOBALS["TSFE"]->fe_user->getKey("user","myData");
} else {
#это для не авторизированных пользователей
$myData = $GLOBALS["TSFE"]->fe_user->getKey("ses","myData");
}

См.: здесь...
http://www.koller-webprogramming.ch/tipps-tricks/typo3-extension-entwicklung/arbeiten-mit-sessions/

lyova
24.01.2013, 16:57
Но я так и использую это:
//сдесь пытаюсь вывести переменную из тайпо сесии (но ее нет)
echo "<br>session test=".$GLOBALS["TSFE"]->fe_user->getKey("ses","test")."-<br>";

Я просто не проверяю на реестрацию, потому что не использую её на сайте. То есть пользователь всегда не залогиненый.

Ивано++
24.01.2013, 20:46
Сессия пишется в БД

Вы можете ее записать [название расширения][ключ][значение]
Вы можете ее получить [название расширения][ключ][значение]

_SESSION - использовать не надо....

lyova
25.01.2013, 13:55
Запустил этот код на другом хостинге. Всё работает. Значит сам код в моём первом посте правильный и его можно использовать. Наверно всё таки где-то на шлюзе режутся куки. Попробовал зайти на сайт по локальному IP адресу(не из вне) работает.

Ивано++
25.01.2013, 14:16
Удивительно - в круг моих понятий при работе с typo3 досихпор не вошли такие понятия как шлюзы, резка cook , IP - и прочее - только хостинг либо localhost:) - наверно всему виной отсутствие злых админов - которым лишь бы что-то закрыть...

shuman
12.05.2016, 05:23
Ивану - вы по немецки понимаете?

Ивано++
12.05.2016, 22:19
Нет, с немецким не дружу...
Кстати, к администрации форума - не везде заменены ссылки с http://forum.typo3.biz/ на "ru"!