Как разделить сессии на разных вкладках браузера(альтернативы сессиям)?

Допустим есть 2 заказа и нам нужно их редактировать . При редактировании заказа все данные по нему(корзина,покупатель и т.д.) сохраняются в сессию и потом работа идет с ней . Проблема в том , что если в 2 вкладках редактировать разные заказы , то данные перемешиваются друг с другом , что не странно . Сделал разделение между переменными сессии типа $_SESSION['orders'][$orderId] для каждого отдельного заказа . Как бы норм ,с заказами все работает . Но бывают моменты , когда сессии нужно разделать не только по одному идентификатору как с заказами , а параметров может быть несколько . Если придерживаться той же логики , что и с заказами , то будут переменные типа
$_SESSION['name'][$paremetr1][$paremetr2][$paremetr3][$paremetr4] , что сильно усложняет дальнейшую работу . Как еще можно решить проблему с разделением сессий в разных вкладках ? или может заюзать в таком случае что-нибудь другое? redis не сможет решить проблему?
  • Вопрос задан
  • 389 просмотров
Пригласить эксперта
Ответы на вопрос 4
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
если 2х достаточно, то в большинстве браузеров есть анонимный режим. другой вариант при локальной разработке использовать алисы доменов
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Каждой вкладке присвоить свой уникальный $TAB=uniqid(), и при каждом переходе/загрузке страницы/сабмите формы использовать его во всех URL (site.org/index.php?TAB=$TAB) и во всех формах (<input type=hidden name=TAB value='$TAB'>). Так и дифференцировать.
Ответ написан
Комментировать
solotony
@solotony
покоряю пик Балмера
1) не хранить данные в сессии (только данные идентификации, настройки)
2) явно ввести в URL тип и идентификатор того с чем ты работаешь (если их несколько - да, значит несколько типов и идентификаторов)
3) сохранять данные в хранилище привязываясь к типу+идентификатору
Ответ написан
Комментировать
shuchkin
@shuchkin
веб-программист, сисадмин, предприниматель
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽