две сесии
5 отговора
174 прегледа
две сесии
Правя допълнение за един сайт и се натъкнах на следния проблем:
Самият сайт използва сесия под името 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.
Самият сайт използва сесия под името 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.
Re: две сесии
нещо не мога да разбера за чий са ти 2 отделни сесии - сипвай си твоите работи в "оригиналната" сесия и къф тие проблема?
Just a genius
Re: две сесии
Нали могат да се регистрират хендлъри за четене и писане на сесията. Може би може да направиш такива дето барат чуждата сесия, и после я четат или записват нормално.
Все пак нещо в проблема силно намирисва. Разкажи повече.
--
Екстремно програмиране на български.
[линк]
Все пак нещо в проблема силно намирисва. Разкажи повече.
--
Екстремно програмиране на български.
[линк]
осем сесии
И за какъв дявол са ти 2 сесии?!
Просто си дефинирай един масив $my_sess = array() и го набутай в сесията. Сесията е една.
Everything louder than everything else...
Просто си дефинирай един масив $my_sess = array() и го набутай в сесията. Сесията е една.
Everything louder than everything else...
Re: две сесии
Защо ми трябват две сесии: да кажем, че трябва да се обединят два почти независими проекта, които в един момент трябва да си обменят малко информация, съдържаща се в сесиите им. Вече има достатъчно изписан код и достатъчно съвпадащи променливи в двете сесии за да е невъзможно съхраняването на всичко в една.
Goddam money. It always ends up making you blue as hell.
Goddam money. It always ends up making you blue as hell.
Re: две сесии
Във втория проект заместваш навсякъде, където имаш $_SESSION, със $_SESSION['second_project'].
Everything louder than everything else...
Everything louder than everything else...