|
|
|
| Совершенно бредовая ситуация.
Пользователь заходит в магазин. Выбирает товар - данные по покупке заносятся в сессию.
Затем происходит вот что.
1.Если нажать ссылку перехода на главную страницу, данные сессии теряются.
2.Если набрать - символ в символ - адрес этой же главной страницы вручную - все проходит нормально.
Не веря своим глазам, протестировал раз 10. Адрес ссылки копировал напрямую из html-кода полученной страницы. Совершенно точно - данные теряются ТОЛЬКО в случае щелчка по ссылке.
Понимаю, что звучит как ахинея, но так и происходит.
Проблема очень срочная. Огромное спасибо сочувствующим). | |
|
|
|
|
|
|
|
для: Shiva
(20.12.2006 в 20:44)
| | Да, еще информация по теме. Если в текущей сессии - т.е., не закрывая окна, проделать эти манипуляции еще раз - все проходит нормально. Т.е. начиная со второго раза, все работает.
Отмечу на всякий случай, что ссылка прямая - т.е. никакой обработки onclick и т.п.
И еще. Также данные сессии теряются, если происходит переадресация по header("Location: ...");
К слову, этот же код благополучно работает еще на десятке сайтов. Может ли браузер при щелчке по ссылке иначе отправлять/получать заголовки, чем при непосредственном вводе в адресную строку? И может ли сервер, ввиду каких-то настроек, реаегировать на это иначе, чем на других сайтах. | |
|
|
|
|
|
|
|
для: Shiva
(20.12.2006 в 20:44)
| | Так бывает, если используются два вида URL www.site.ru и site.ru, а сессия передаётся через сессионную cookie, которая привязывается к одному из доменов и не доступна на другом домене. | |
|
|
|
|
|
|
|
для: cheops
(20.12.2006 в 21:04)
| | Действительно, если заходить на страницу магазина без www - все работает.
Тогда вопросы - почему же сессия была доступна при прямом наборе такого же url в адресную строку?
И почему со второго раза все работало?
Мне это приходило в голову - но, не зная, насколько это возможно, я не углублялся и ограничился тем, что переписал пресловутую ссылку без www. В любом случае, огромное спасибо. Я избежал безумия... | |
|
|
|
|
|
|
|
для: cheops
(20.12.2006 в 21:04)
| | Еще вопрос - можно ли изменить эту привязку сессий через .htaccess? Или - если нет - имеет ли смысл обращаться к хостеру с просьбой изменить эту ситуацию?
Сайт очень велик, не хотелось бы перелопачивать весь код... | |
|
|
|
|
|
|
|
для: Shiva
(20.12.2006 в 21:23)
| | Изменить скорее всего нельзя. В настройках хостера должно быть установлено короткое имя твоего хоста для сессий. Это также как слать куки: cookies("name", "value", time() + 3600, "/", "site.ru") и если вместо sute.ru вписать www.site.ru то будет потеря кук. Поэтому тебе к хостеру за настройкой виртуальных хостов. | |
|
|
|
|
|
|
|
для: XPraptor
(21.12.2006 в 05:17)
| | Почитав про эту историю, ограничился пока переадресацией с/на www. через ModRewrite. Каковы минусы такого решения?
Спасибо. | |
|
|
|
|
|
|
|
для: Shiva
(21.12.2006 в 11:06)
| |
Каковы минусы такого решения?
|
Увеличение нагрузки на сервер, но она не значительная. | |
|
|
|
|
|
|
|
для: cheops
(21.12.2006 в 12:58)
| | Большое спасибо еще раз. | |
|
|
|