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

ColdRaven

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

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

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

Подскажите, пожалуйста, есть ли в Joomla такая возможность?
Не умеешь бегать - учись огребать))
*

dmitry_stas

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

ColdRaven

  • Осваиваюсь на форуме
  • 40
  • 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
  • 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

  • Профи
  • 10059
  • 954
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:
и так далее
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ограничение статей для пользователя

Автор Grunya

Ответов: 1
Просмотров: 41
Последний ответ 12.09.2017, 20:14:46
от Septdir
Дополнительные поля пользователя внести в письмо админу

Автор Аня

Ответов: 1
Просмотров: 59
Последний ответ 06.09.2017, 17:17:34
от Septdir
Ошибка при регистрации нового пользователя

Автор oleg-bogora

Ответов: 13
Просмотров: 625
Последний ответ 26.08.2017, 22:51:24
от kasper9820
Как изменить поля у формы редактирования профиля пользователя?

Автор ChervonStudio

Ответов: 0
Просмотров: 96
Последний ответ 13.08.2017, 18:01:16
от ChervonStudio
Как запретить выполнение скрипта по ID группы пользователя?

Автор Ishti39

Ответов: 3
Просмотров: 103
Последний ответ 12.08.2017, 10:26:11
от Ishti39