Предложите, пожалуйста, Ваш вариант реализации следующего:
для веб-приложения (пусть это будет сайт на php, не суть важно) необходимо сделать так, чтобы на стороне сервера каждое открытое окно и происходящее в нём было связано с одним и тем же номером сеанса. При этом важно, чтобы номер сеанса у всех открытых окон был разный и жил ровно столько времени, сколько открыто окно.
Временные куки, похоже, не годятся - в разных окнах браузера они одинаковые.
Примечание:
Нужно, чтобы номер сеанса сохранялся, если в этом же окне мы переходим по ссылке и она открывается в этом же окне.
Примечание:
2 NetRain:
Значения скрытых полей в ссылку не передаются. Руками дописывать к каждой ссылке - удовольствие ниже среднего, кроме того, такая ссылка, переданая другому пользователю, может нарушить безопасность и даже может послужить причиной того, что в разных окнах окажется один и тот же идентификатор сеанса.
HTTP_REFERER - решение было идеальным, если бы сцобака IE его не резал в некоторых случаях (собственно, сейчас трекинг у меня сделан на HTTP_REFERER, но это не всегда хорошо работает в IE, я бы сказал, что не работает вообще).
Примечание:
2 stopkran:
Я подразумеваю под "сеансом" работу внутри отдельного окна. Даже если один и тот же юзер работает в разных окнах одного браузера, сеансы в них должны быть разные. Это нужно для того, чтобы можно было выполнить трекинг его действий, а также корректную работу с формами. (Например, когда юзер заходит на страницу редактирования, значения полей читаются из БД. В последующем, когда он просто обновляет эту страницу, то данные из БД не читаются, а остаются прежними. Обновлять страницу редактирования могут и интерактивные компоненты, при этом нужно, чтобы уже изменённые поля из БД не читались заново.)
Момент с Http-авторизацией интересен - распишите, плз, поподробнее. Не хотелось бы постоянно запрашивать у юзера пароль и логин.
Примечание:
2 Ильдар-:
А как сохранить значение этой переменной при переходе по ссылке в этом же окне ?
Примечание:
2 stopkran:
>> Если пользователь откроет страницу редактирования в двух разных окнах, http-авторизация будет одна и та же (она всё-таки привязана к странице или папке сервера, а не к окну браузера).
Тогда от кукисов это мало чем отличается -> не подходит в данном случае, так как мне надо идентифицировать окно.
Примечание:
Похоже на то, что среди предложенных вариантов остаётся только window.name. Посмотрю в эту сторону, хотя опять же непонятно как PHP-скрипт будет определять в каком окне он открыт.
Примечание:
Проблему я (временно) решил принудительной передачей HTTP_REFERER в IE путём эмуляции нажатия ссылки ((( Будет работать до поры до времени. Однако проблема с сессией в окне достаточно актуальна, так как ни одно из предложенных решений я не могу считать изящным и простым. Хотя если припрёт, буду делать что-то похожее на предложенное stopkran и Ильдар-.
Всем спасибо.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.