разделение данных сессии по окнам

admGT

Новичок
разделение данных сессии по окнам

Здравствуйте,
Проблема в следующем: на сайте имеется форма авторизации, построенная на сессиях. Тривиально: после авторизации происходит запись логина и пароля в массив, живущий в сессии, а также из БД извлекаются права и настройки для данной связки(логин-пароль), и затем редирект на нужный скрипт, в зависимости от введенных логина и пароля. Теперь собственно проблема: в связи с тем, что клиенту необходимо одновременно работать с несколькими окнами с независимыми логином и паролем и соответствующими настройками, происходит "перепутывание" логинов и паролей (в зависимости от окна, в котором произошел последний сабмит или лог-ин) с соответствующими проблемами (запись в базу некорректной информации). Попробовал писать в массив, живущий в сессии, в котором хранятся логин и пароль, дополнительно время открытия окна и сравнивать с временем открытия окна или вкладки в браузере, но проблема в том, что при сабмите страницы, время переписывается и не совпадает с временем, записанным в сессию. Может кто-то сталкивался с подобным, хотелось бы услышать Ваши мысли на этот счет. Заранее благодарю.
 

С.

Продвинутый новичок
Вообще это не нормально, что бы один клиент с двумя логинами одновременно заходил. Поэтому даже и не предусмотрено такое в стандарте. Пэтому вариант такой:

1. Убедися, что так работать клиенту надо.
2. Точно-точно убедиться, что это не бзик, который можно обойти стандартными средствами.
3. Применить нестандартные средтва, как то передача SID в урле.
 

admGT

Новичок
1 - это действительно необходимо(куча клиентов с разными функциями, причем в разнообразных сочетаниях)
2.Уже смотрел на стандартные средства - никак не получается :(
3.Думал про SID в урле, проблема в том, что уже работают более 200 скриптов в системе и если переписывать все ссылки (не исключая возможности ошибки - а система уже работает), то на это уйдут месяцы (упреждая вопрос, отчего так было сделано изначально - начинал писать систему не я, мотивация автора и непродуманность системы авторизации для меня непонятна)
 

Фанат

oncle terrible
Команда форума
То есть ты ищешь волшебную палочку, мановением которой эта изначально криво спроектированная система заработает так, как тебе хочется, без приложения усилий с втоей стороны?
Ну-ну, ищи.
 

admGT

Новичок
Усилия прилагаются. Просто можно тупо упереться рогом и переписать все, а можно сделать более изящно. Я сторонник 2-го пути, и если бы пошел по первому, этого вопроса здесь бы не было. Подумалось, что кто-то возможно сталкивался с подобным. Именно к таким людям вопрос.
 

Фанат

oncle terrible
Команда форума
С чем сталкивались? С тем, как браузеры работают с куками? Ну, каждый, из тех, кто может назвать себя веб-программистом. Все стандартно и обычно. Какого божественного откровения на эту тему ты ждешь?
 

admGT

Новичок
2***** :) то есть, по-твоему, записывать SID в урл - единственный способ решения проблемы?

-~{}~ 25.01.10 15:58:

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

Фанат

oncle terrible
Команда форума
Нет, не единственный
можно велеть, например, клиентам лазить из разных браузеров под разными логинами.

вообще проблема не очень понятна. если, как ты говоришь, в зависимости от разных логинов запускаются разные скрипты, то какая проблема проверять запущеный скрипт-то?
 

admGT

Новичок
1)по умолчанию принят один браузер - политика компании. Для 5 функций понадобятся 5 браузеров - это трудно объяснить какой-нибудь бабусе, неплохому финансисту, но отвратительному юзеру, для чего нужны такие сложности.
2)есть ситуации, в которых даже одному скрипту соответствуют разные права доступа для разных логинов. И есть персонажи, которые работают с этими разными логинами с одного браузера.
 

Фанат

oncle terrible
Команда форума
ты мне-то это не рассказывай. мне это неинтересно.
ты спросил про другие способы (которые, судя по всему, тебе неизвестны - ты вчера интернет увидел) - я ответил.
 

admGT

Новичок
Тебе я ничего не рассказываю, я отвечаю на несостоятельность твоих версий. Если по вопросу в теме нечего сказать, лучше ничего не говорить.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Что-то я на деле ни разу не встречался с системами, где пользователю надо было создавать
такое количество логинов, чтобы в зависимости от логина пускать или не пускать к
определенной странице (читай скрипту/функции в системе/и т.д.). И по-хорошему, как мне кажется, тут переписать все надо было бы с использованием нормального разграничения доступа.
 

Фанат

oncle terrible
Команда форума
короче, я думаю, автору не помешает почитать в гугле про куки.
На основании полученных знаний уже выбирать подходящий вариант решения проблемы.
Тема закрыта.
 

fixxxer

К.О.
Партнер клуба
ну я так понимаю что переписать автор бы и рад, но приходится колупать что есть.

ну можно например разные имена использовать.

"s_user", "s_admin" etc
 

admGT

Новичок
2 c0dex: есть необходимость использования например диспетчером функции заведения звонков и функции медиаплана. Причем функция заведения звонков может быть открыта для разных территориально разнесенных филиалов (что включает в себя разные права доступа, но использование одного скрипта), в то же время функцию медиаплана также может использовать сотрудник отдела рекламы но уже с другими правами. Это все к делу не относится, но чтобы пояснить, как такое бывает.
 

baev

‹°°¬•
Команда форума
admGT, что — диспетчер и сотрудник отдела рекламы одним компьютером пользуются, что ли?
И при чём тут «разные филиалы»? Они что — под одним логином все работают?

Я реально не могу себе представить, как нужно постараться так «организовать» бизнес-процесс…
 

admGT

Новичок
нет, не одним. И даже логины у них разные. Они просто работают с одним и тем же скриптом, но с разными параметрами. Для филиалов, например, все параметры аналогичны, кроме параметра location. И теперь ситуация: производится логин с loc1,потом в соседнем окне обращаются к тому же скрипту, но loc2 уже. Как думаете, при одном идентификаторе сессии, что произойдет при записи в первом окне? Правильно, в поле location запишется loc2 в базу.
 
Сверху