Глюк с сессией, который возникает только в очень малом проценте случаев

Mosik

Новичок
Глюк с сессией, который возникает только в очень малом проценте случаев

На сайте www.webconsultant.com.ua иногда проскакивает глюк. Появляется он в следующем случае:
Пользователь заходит на сайт -> Идет на какую-то страницу с продуктами -> выбирает валюту "доллар" -> выбирает валюту "евро" -> выбирает валюту "гривна" -> просматривает другие страницы сайта.

Так вот, в приблизительно 99% случаев при первом выборе какой-то валюты создается сессия, в которой запоминается валюта, и при остальных просмотрах страниц используется уже созданная сессия.

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

Пробовал смоделировать ситуацию на 20-и компах и на 3-х разных браузерах разных версий. Все работает корректно.

В итоге глюк выловить не удается.

В чем может быть проблема?
Если есть желание помочь то попробуйте повторить описанную последовательность действий и посмотреть сохраняется ли сессия.

Идентификатор сессии я на некоторое время вывел внизу страницы белым текстом на белом фоне.
 

Mosik

Новичок
ForJest
А куки ты не пробовал отключать?
пробовал
все так-же

Да и лог я веду в котором записываю служебные данные. В нем мне видно что тестовая кука в тех случаях когда сессия глючит есть.
 

alexhemp

Новичок
Mosik

читать http://phpfaq.ru/sessions, и мануал думать на предмет механизма передачи PHPSESSID

Смотреть установки как в php.ini так и ini_set в скриптах:
session.use_cookies
session.use_trans_sid
session.use_only_cookies

А так-же полезно отключить у себя куки и посмотреть не будет ли такого-же поведения.
 

Фанат

oncle terrible
Команда форума
Mosik
как-то иногда на форуме проскакивала информация, что чужой гарбедж коллектор затирает твои куки на хостинге.
Не знаю - правда или нет
 

tony2001

TeaM PHPClub
>чужой гарбедж коллектор затирает твои куки на хостинге
гарбадж коллектор чистит сессионные файлы, а не куки.
 

Mosik

Новичок
alexhemp
А так-же полезно отключить у себя куки и посмотреть не будет ли такого-же поведения.
Отключал. Нет такого поведения.

читать http://phpfaq.ru/sessions, и мануал думать на предмет механизма передачи PHPSESSID
Механизм знаю. Это не помагает.

Смотреть установки как в php.ini так и ini_set в скриптах:
session.use_cookies
session.use_trans_sid
session.use_only_cookies
session.use_cookies On On
session.use_trans_sid On On
session.use_only_cookies Off Off
 

Mosik

Новичок
Фанат
как-то иногда на форуме проскакивала информация, что чужой гарбедж коллектор затирает твои куки на хостинге.
Не знаю - правда или нет
Ну и память у тебя. ;-)
Информация проскакивала. Но немного по другому чем ты сейчас написал. И сессии у меня хранятся в БД и гарбедж коллектор работает сейчас пости нормально. У меня к нему только один вопрос.
 

Фанат

oncle terrible
Команда форума
лог я веду в котором записываю служебные данные. В нем мне видно что тестовая кука в тех случаях когда сессия глючит есть.
то есть, проблема в том, что браузер куку не отдаёт.
так?
 

Mosik

Новичок
Фанат
то есть, проблема в том, что браузер куку не отдаёт.
так?
Понимаешь в чем проблема. Тестовую куку он отдает. А с кукой сессии какие-то проблемы.
Я даже точно не могу сейчас сказать устанавливается ли она в тех 1% случаев.
 

Фанат

oncle terrible
Команда форума
это, как я понимаю, был утвердительный ответ.

то есть, вот и выходит, что проблема в куке.
 

Mosik

Новичок
Фанат
это, как я понимаю, был утвердительный ответ.
Утвердительный ответ такой:
Я не могу получить идентификатор существующей сессии независимо от того в куке он сидит или передан через GET or POST. В массиве REQUEST идентификатора сессии нету.
 

Фанат

oncle terrible
Команда форума
но при этом в квери стринге или хидден поле он есть?
 

Mosik

Новичок
Фанат
но при этом в квери стринге или хидден поле он есть?
В описанном случае он должен быть в хидден поле.
Когда я моделирую ситуацию то в хидден поле он есть.

Правда сам я хидден поле не прописываю. Надеюсь что PHP его туда ВСЕГДА (когда это нужно) впихивает.
 

Фанат

oncle terrible
Команда форума
о.
а зачем ты нам тогда час рассказывал о каких-то сессиях-шмессиях, если твоя проблема формулируется так:

имеем в пост запросе валидный идентификатор валидной сессии, НО при этом он отсутствует в массиве REQUEST, а так же сессия с эим айди не поднимается

я правильно сформулировал?
 

Mosik

Новичок
Фанат
имеем в пост запросе валидный идентификатор валидной сессии, НО при этом он отсутствует в массиве REQUEST
ДА

а так же сессия с эим айди не поднимается
А тут не понял. Сессия с этим айди в таблице сессий успешно присутствует.
 

Фанат

oncle terrible
Команда форума
я думаю, твой скрипт в своём коде прибивает айди сессии или перегенерирует его
 

Mosik

Новичок
Фанат
я думаю, твой скрипт в своём коде прибивает айди сессии или перегенерирует его
//******************************************************
// Тестовая установка cookie
//******************************************************
if (!isset($_COOKIE[PAS_COOKIE_CHECK])) {
setcookie(PAS_COOKIE_CHECK, true);
}
//******************************************************
// Старт сессии, если это нужно
//******************************************************
$session_start = false;
$session_append_sid = null;
if (isset($_REQUEST[PAS_WEBCONSULTANT_SID])) {
pas_session_start();
}

как он его может убить?
 
Сверху