0 Пользователей и 1 Гость просматривают эту тему.
  • 4 Ответов
  • 656 Просмотров
*

ColdRaven

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
  • Let's Rock!!))
Добрый день!

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

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

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Сессия другого пользователя
« Ответ #1 : 25.01.2016, 18:57:57 »
base64_decode
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ColdRaven

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
  • Let's Rock!!))
Re: Сессия другого пользователя
« Ответ #2 : 25.01.2016, 19:11:40 »
base64_decode() возвращает false
« Последнее редактирование: 25.01.2016, 19:15:25 от ColdRaven »
*

ColdRaven

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
  • Let's Rock!!))
Re: Сессия другого пользователя
« Ответ #3 : 25.01.2016, 20:17:34 »
UPD
Нашел в классе JSessionStorageDatabase вот такой код:
Код
$data = str_replace(chr(0). '*' . chr(0), '\0\0\0', $data);
Сделал обратную замену, убрал из начала строки '__default', и после этих манипуляций, unserialize выдал вполне адекватный массив.

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

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Сессия другого пользователя
« Ответ #4 : 25.01.2016, 20: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:
и так далее
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться