Уважаемые специалисты.
На сайте, над которым тружусь, для поддержания сессии всегда использовались куки, но тут возникла задач а в отдельных случаях передавать 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
Значит нужна ещё доп. проверка на конкретный браузер т.е. решение не универсальное (вдруг эта проблема ещё где-то всплывёт и нужно ещё проверки добавлять).
Вопрос такой: можно ли как-то проще решить эту проблему?