Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Разработка расширений / TYPO3 extension development (http://forum.typo3.ru/forumdisplay.php?f=38)
-   -   Запись переменных в сессию (http://forum.typo3.ru/showthread.php?t=10571)

lyova 24.01.2013 04:24

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


PHP код:

//если пишу это тогда могу использовать стандарный способ РНР ($_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/...-mit-sessions/

lyova 24.01.2013 16:57

Но я так и использую это:
PHP код:

//сдесь пытаюсь вывести переменную из тайпо сесии (но ее нет)
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"!


Часовой пояс GMT +4, время: 01:23.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot