Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   PHP (http://www.flasher.ru/forum/forumdisplay.php?f=20)
-   -   Вопрос по сессиям (http://www.flasher.ru/forum/showthread.php?t=53463)

SandyMAN 08.01.2004 14:23

Вопрос по сессиям
 
Всем привет!

Столкнулся вот с такой проблемой.

Есть сайт. Он состоит из нескольких страниц, на которых в начале любого действия выберается некий параметр, который является глобальным для всего сайта. Сохраняется в session.
То есть, на одной странице юзер выбирает параметер, и работает с ним по всему сайту, пока не изменит его на кокой-нибудь странице.

Но вот такая ситуация. Человек выбрал скажем параметр 111, и открывает новое окно того же браузера.

В новом окне остаётся тот же параметр 111 что и в первом окне.

Далее, во втором окне, юзер изменил параметер на 222 и перешел на первое окно. И сделал там, допустим, релоад странице.

И вместо параметра 111 он получает из сессии новый параметр 222.


Вот сам вопрос: как можно запретить изменятся этому параметру в первом окне? Нужно чтобы он оставался прежним в этом окне.

Как-то можно "метить" (отслеживать) окна одного браузера?

конечно можно передавать по URL, но может есть другие способы?

kompadre 09.01.2004 06:08

Привязать параметр к окну. Для каждого окна по параметру.

А еще помни: больше окон - меньше безопасности.
Работая с сессиями лучше всего использовать одно единственное окно на котором юзер к тебе зашел.

SandyMAN 09.01.2004 18:34

>Привязать параметр к окну. Для каждого окна по параметру.

дык в этом вся и проблема, что нет возможности "пометить" разные окна согласно законам HTTP. Для всех окон одного браузера существуют одни и теже куки и сессии. Привязать разные идентификаторы к разным окнам браузера нельзя.

Зная это, я задал этот вопрос с небольшой надеждой - а вдруг есть какой-то трюк? Народ ведь у нас умный, на всякое способен. ;)

>А еще помни: больше окон - меньше безопасности.

к безопасности, по-моему, это не имеет отношения. Всё зависит от "правильности" программирования

>Работая с сессиями лучше всего использовать одно
>единственное окно на котором юзер к тебе зашел.

к сожалению, мы не можем (да и не в праве) ограничивать людей в открытии дополнительных окон. Хотя именно это помогло бы в моём случае.

kompadre 09.01.2004 19:56

А нельзя заменить все линки открываюшее новые окна на "онклик" который будет добовлять к хотимому урлу параметр "виндоу=такойто"? А в сессии иметь хэш. У хЭша индексы - коды страниц. Также в сессию можно запихнуть код "активного" окна который будет меняться при

а) открытии нового окна, собственно
б) при вызове дхмлового события "onfocus"

Эта смена может происходить примерно так :

-(открывается окно)
-окно получив фокус бегет на скрипт и передает ему гетом кодовое название страницы (это можно зделать хитро например с помошью изображением
-этот скрипт смотрит существует ли элемент в массиве сессии относящейся к имени полученному гетом.
-если нет - создает
-меняет переменную указывающюю на активный элемент массива.

SandyMAN 09.01.2004 21:14

спасибо Падре. Очень интересная идея. Правда существует проблема: человек может захотеть просто открыть ещё один экземпляр страницы в новом окне, например нажатием CTRL+N (File->New) или в другом каком-нибудь браузере иным способом. Поэтому не получится передать параметер также как при "онклик"

Думаю, в моём случае более правильно будет не хранить данные в сессиях, а передавать все по URL. И менее геморно, и более надёжно.


Часовой пояс GMT +4, время: 03:10.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.