Файлы cookie с истечением срока действия теряются IE6, IE7 при загрузке JS в другом домене - PullRequest
1 голос
/ 22 декабря 2011

Мы пытаемся написать систему отслеживания партнеров.

Пользователи нажимают на ссылку на скрипт PHP на сервере A, который помещает некоторые файлы cookie с информацией об отслеживании.Затем скрипт перенаправляет их на целевую страницу на сервере B. Как только пользователь попадает на целевую страницу, загружается javascript, сгенерированный кодом PHP, с использованием ранее установленных файлов cookie.

Все это прекрасно работает в Safari, FFи IE9.

У нас была проблема в IE8, когда php, который генерирует javascript, получал только те файлы cookie, которые были отправлены обратно, которые были установлены без использования каких-либо параметров, кроме name и value.Файлы cookie, срок действия которых истек, не были отправлены обратно.Это мы в конечном итоге исправили, установив путь к cookie-файлам /, даже если оба сценария php (установщик и получатель) находятся в одном и том же пути.Но это исправление работало только для IE8, у нас все еще есть та же проблема с IE6 и IE7.

Кроме того, если мы вызываем скрипт getter напрямую (а не из тега script на сервере B), тогда все работает как положено.

Также мы попытались установить для параметров конфиденциальности IE самые низкие значения.

Пример того, как мы устанавливаем файлы cookie

 <?PHP
 setcookie($key,$val);//this works

 //this doesn't
 setcookie('COOKIE', json_encode($info), time()+259200000);

Ответы [ 2 ]

0 голосов
/ 26 декабря 2011

Хорошо, так что время сортировки cookie установлено для IE7, но не для IE6

Для IE6 нам нужно было использовать P3P заголовки, я поместил их как в скрипт, который пишет cookie, так и в файл cookie.

<?PHP
header('Cache-Control: public, max-age=0, must-revalidate');
header('P3P: policyref="/p3p.xml", CP="NOR NOI DSP COR ADM OUR PHY"');

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

0 голосов
/ 22 декабря 2011

В IE8 не поддерживается какой-либо формат даты, используемый другими браузерами, даже в IE7 и IE9, вы можете просмотреть формат даты, в противном случае вставить сюда код cookie, мы можем проверить вас.

...