Показать сообщение отдельно
  #1 (permalink)  
Старый 11.11.2015, 11:49
Новичок на форуме
Отправить личное сообщение для temnykk Посмотреть профиль Найти все сообщения от temnykk
 
Регистрация: 11.11.2015
Сообщений: 5

Проблема с передачей PHPSESSID в location.pathname в firefox
Уважаемые специалисты.

На сайте, над которым тружусь, для поддержания сессии всегда использовались куки, но тут возникла задач а в отдельных случаях передавать PHPSESSID через URL.
В числе прочего на уровне PHP отключаю куки и включаю transsid и браузеры подхватывают сами большую часть.

Но есть, среди прочего, в JS-коде такой редирект:

location.pathname = '/cart/list/';

И несколько практически таких же.
Соответственно, с учётом указанной выше настройки на выходе после такой команды получается что-то в виде:
mysite.com/cart/list/?PHPSESSID=al5mlujofn8v24lcpg54ighgs6

Суть проблемы:
Firefox, в отличие от всех остальных браузеров не подставляет в этом случае сессию. Т.е. имеем:
mysite.com/cart/list/
В коде есть переменная, отвечающая за сессию и можно сделать, например, так:

location.pathname = '/cart/list/'+((typeof(force_session_id) !== "undefined") ? '?PHPSESSID='+force_session_id : '');


Но тогда хром, например, делает вот это и вообще ломается:

mysite.com/cart/list/?PHPSESSID=al5mlujofn8v24lcpg54ighgs6?PHPSESSID=al 5mlujofn8v24lcpg54ighgs6

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

Вопрос такой: можно ли как-то проще решить эту проблему?
Ответить с цитированием