Уничтожение сессии в ie

ml11fin

Новичок
Фанат
Дай сто советов. Столкнулся с той же проблемой.
Причем не я один - а все, кто работает с сессиями и ИЕ.
Например здесь http://us2.php.net/manual/en/function.session-cache-limiter.php есть пару описаний проблем, но у каждого свои решения и у меня они не работают.

Проблема скорее всего с датой конца жизни кукиза идентификатора сессии.
 

Фанат

oncle terrible
Команда форума
проблема с датой конца жизни кукиза идентификатора сессии не бывает.
если не трогать дефолтные настройки.
 

ml11fin

Новичок
Тогда в чем может быть проблема?

Если сайт на локалке или в корпоративной сети, то все ок. Как только сайт "снаружи", то в ИЕ начинаются траблы

Могу дать заголовки.
 

ml11fin

Новичок
Имя сесси изменено на PPHPID.

Причем,что интересно - сбрасывается именно кукиз имени сессии.
 

Фанат

oncle terrible
Команда форума
соответствуют ли куки, указанным, как эталонные, в http://phpfaq.ru/sessions ?
 

ml11fin

Новичок
мне кажется, что я уже написал, что куки, устанавливаемые сессионным механизмом PHP отличаютсятолько ИМЕНЕМ сесси - вместо стандартного PHPSESSID на PPHPID.

В результате получаем заголовки от сервера
HTTP/1.0 200 OK
Date: Tue, 13 Feb 2007 17:34:54 GMT
Server: Apache/1.3.34 (Unix) PHP/4.4.2
X-Powered-By: PHP/4.4.2
Set-Cookie: PPHPID=1a2da6e40ca1da82fe25d8f4dc44eb28; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Type: text/html
X-Cache: MISS from es-gw
Proxy-Connection: close

Других отличий - нет.
Проблема возникает только в ИЕ. В ОПЕРЕ такого и в помине нет - все работает отлично.

Причем в какой-то момент просто исчезает из кукизов только сессия.
Причем вся авторизация-проверка-разлогинивание сесии прописывается в логах и ускользнуть не может. Так вот - на стороне сервера удаление сессии нет. Есть только со стороны очередного глюка Мелкософта
 

Фанат

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

Хотя на самом деле следует обратить внимание вот на этот замечательный заголовочек. X-Cache: MISS from es-gw
 

ml11fin

Новичок
Прокси-сервер на стороне нашей локальной сети.
но в другой сети те же проблемы.... И там тоже есть прокси.....

Тогда почему в Опере все нормально? он ведь тоже ходит через прокси?....
Странно.
 

Фанат

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

Фанат

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

ml11fin

Новичок
ВНИМАНИЕ!!! ПРОБЛЕМА БЫЛА НАЙДЕНА!

Код счетчика i.ua каким-то образом ЗАТИРАЕТ куку сесии в IE версии 6.0!!!


Сам код

<!-- I.UA counter -->
<a href="http://www.i.ua/" target="_blank" onclick="this.href='http://i.ua/r.php?xxxx';" title="Rated by I.UA">
<script type="text/javascript" language="javascript"><!--
iS='<img src="http://r.i.ua/s?uXXXX&p30&n'+Math.random();
iD=document;iD.cookie="iua=1";if(iD.cookie)iS+='&c1';
iS+='&d'+(screen.colorDepth?screen.colorDepth:screen.pixelDepth)
+"&w"+screen.width+'&h'+screen.height
iT=iD.referrer.slice(7);iH=window.location.href.slice(7);
((iI=iT.indexOf('/'))!=-1)?(iT=iT.substring(0,iI)):(iI=iT.length);
if(iT!=iH.substring(0,iI))iS+='&f'+escape(iD.referrer.slice(7))
iS+='&r'+escape(iH);
iD.write(iS+'" border="0" width="88" height="31" />');
//--></script></a><!-- End of I.UA counter -->

Мало того, что исчезает кука с сессией, так еще исчезает кука счетчика iua=1!!!

После удаления кода со страницы - все возвращается в норму!

Будьте бдительны!
 

Dave

Новичок
только что столкнулся с аналогичной проблемой, в ИЕ сессия слетала: моя страница была в iframe на другом домене и в ИЕ в iframe сессия слетала в то время как во всех остальных браузера все замечательно работала.

описание проблемы было найдено тут: ссылка
I got a call today about one of my applications not running correctly from inside an iFrame. I tried it out and it looked like everything worked great in Safari and Firefox but not IE6 or IE7. It took me a few failed attempts to fix it before I decided it must be a session problem. After firing up a packet sniffer it became obvious the cookie with the session ID was not being passed.

The problem lies with a W3C standard called Platform for Privacy Preferences or P3P for short. You can read all about the boring stuff via the link or else just install the P3P Compact Policy header below. This will allow Internet Explorer to accept your third-party cookie. You will need to send the header on every page that sets a cookie.
Решение:
PHP:
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
может кому пригодится : )
 
Сверху