две сесии

5 отговора 174 прегледа
#1

две сесии

Правя допълнение за един сайт и се натъкнах на следния проблем:

Самият сайт използва сесия под името PHPSESSID. За мои цели на мен ми трябваше също сесия и аз ползвам отново php инструментариума, но под друго име - да кажем MYSESSID.

В един момент обаче се оказва, че ми се налага да получа информация, от PHPSESSID, докато ми е активна MYSESSID. За съжаление не мога да извикам два пъти session_start():

Note: As of PHP 4.3.3, calling session_start() while the session has already been started will result in an error of level E_NOTICE. Also, the second session start will simply be ignored.

session_id() променя id-то само преди извикване на session_start(), а не презарежда данните при негова промяна, както се надявах.

Принципно не виждам какъв им е проблема да заредят две различни сесии (дори с риск да се омажат някои стойности със съвпадащи имена).

Не мога да чета в /tmp, където се държат файловете със сесиите за да си взема данните ръчно заради open_basedir ограничението (сложено е само в webroot-а).

Някакви предложения за това как да се докопам до другата сесия?

П.П. Взеха да ми идват наум разни истории с iframe, в който да се зареди скрипт вземащ данните от другата сесия и с js да ги хвърли във някое скрито поле на форма и да си ги пратя...

Goddam money. It always ends up making you blue as hell.
Отговор
в отговор на humperdink #2

Re: две сесии

нещо не мога да разбера за чий са ти 2 отделни сесии - сипвай си твоите работи в "оригиналната" сесия и къф тие проблема?

Just a genius

Отговор
в отговор на humperdink #3

Re: две сесии

Нали могат да се регистрират хендлъри за четене и писане на сесията. Може би може да направиш такива дето барат чуждата сесия, и после я четат или записват нормално.

Все пак нещо в проблема силно намирисва. Разкажи повече.

--
Екстремно програмиране на български.
[линк]
Отговор
в отговор на humperdink #4

осем сесии

И за какъв дявол са ти 2 сесии?!

Просто си дефинирай един масив $my_sess = array() и го набутай в сесията. Сесията е една.

Everything louder than everything else...
Отговор
в отговор на humperdink #5

Re: две сесии

Защо ми трябват две сесии: да кажем, че трябва да се обединят два почти независими проекта, които в един момент трябва да си обменят малко информация, съдържаща се в сесиите им. Вече има достатъчно изписан код и достатъчно съвпадащи променливи в двете сесии за да е невъзможно съхраняването на всичко в една.

Goddam money. It always ends up making you blue as hell.
Отговор
в отговор на humperdink #6

Re: две сесии

Във втория проект заместваш навсякъде, където имаш $_SESSION, със $_SESSION['second_project'].

Everything louder than everything else...
Отговор