Форум русской поддержки Joomla!® CMS
10.12.2016, 12:57:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Сессия другого пользователя

 (Прочитано 164 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ColdRaven
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 40


Let's Rock!!))


« : 25.01.2016, 19:51:10 »

Добрый день!

Возникла необходимость залезть в данные сессии "не текущего" пользователя, имея на руках ID этого пользователя и очистить ее от заботливо ($session->set() ) заполненной ранее переменной, при этом не сбрасывая сессию целиком, т.е. пользователь должен остаться залогиненным.

unserialize() поля 'data' из #__session возвращает ошибку, поэтому с этим работать не вариант.

Подскажите, пожалуйста, есть ли в Joomla такая возможность?
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7783



« Ответ #1 : 25.01.2016, 19:57:57 »

base64_decode
Записан
ColdRaven
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 40


Let's Rock!!))


« Ответ #2 : 25.01.2016, 20:11:40 »

base64_decode() возвращает false
« Последнее редактирование: 25.01.2016, 20:15:25 от ColdRaven » Записан
ColdRaven
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 40


Let's Rock!!))


« Ответ #3 : 25.01.2016, 21:17:34 »

UPD
Нашел в классе JSessionStorageDatabase вот такой код:
Код:
$data = str_replace(chr(0). '*' . chr(0), '\0\0\0', $data);
Сделал обратную замену, убрал из начала строки '__default', и после этих манипуляций, unserialize выдал вполне адекватный массив.

Однако, после удаления двух элементов, сериализации, возврата всех проделанных замен и апдейта этого поля в #__session, авторизация пользователя, к которому были применены такие изменения все равно слетает.

Есть возможность работать с чужой сессией без подобных костылей? Или если нет, подскажите, пожалуйста, в чем, собственно, косяк?
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7783



« Ответ #4 : 25.01.2016, 21:51:18 »

не знаю в чем косяк, но у меня в Ж 3.4.8 поле date начинается с
Код:
joomla|s:1452:"Tzoy
так вот Tzoy... - и есть base64 кодированная строка. base64_decode вполне себе возвращает
Код:
O:24:"Joomla\Registry\Registry":2:{s:7:"*data";O:8:"stdClass":1:
и так далее
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet