На Symfony 2 проигрывает сессию с iframe на IE - PullRequest
1 голос
/ 24 ноября 2011

Я делаю приложение на Facebook с Symfony 2. Многие знают, что IE теряет сессии при включении iframe!

Эта проблема может быть решена благодаря заголовку ('P3P: CP = "CAO PSA OUR"');

Поэтому моя проблема - отправить заголовок (' P3P: CP =" CAO PSA OUR "');на Symfony 2.

Я попробовал это в своем действии:

$response = new Response($content);     
$response->headers->set('P3P:CP', 'CAO PSA OUR');
return array($response);

Без успеха сеансы потеряны !!!

Есть идея сделать это?

Ответы [ 2 ]

5 голосов
/ 25 ноября 2011

Я нахожу свое решение!

Просто замените это:

$response->headers->set('P3P:CP', 'CAO PSA OUR'); 

Автор:

 $response->headers->set('P3P', 'CP="CAO PSA OUR"');

Или лучше, как говорит Войцех Банцер:

$response->headers->set('P3P', 'CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

Фактически, вы должны передать в первом параметре все слова перед:, а остальные во втором!

3 голосов
/ 25 ноября 2011

IE может потерять сессию / cookie по разным причинам.

Самый распространенный, который вы назвали, - отсутствие заголовка P3P (вам следует проверить это с помощью инструмента Firebug, чтобы убедиться, что вы его отправляете).

Вторая причина - это подчеркивание имени домена (например, my_app.something.com). Это потому, что подчеркивание в имени против RFC: http://www.ietf.org/rfc/rfc2396.txt. Если я правильно помню (я сталкивался с подобной ошибкой 2 года назад), это также может быть случай, когда в имени вашего cookie-файла Symfony есть подчеркивание.

Третья наиболее распространенная причина, о которой я слышал, была связана со временем, но я никогда сам этого не испытывал. Вы можете прочитать об этом в этой статье: http://genotrance.wordpress.com/2006/11/23/session-cookies-rejected-by-internet-explorer/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...