iFrames Iexplorer不会写或读会话(或cookie)

时间:2013-01-21 12:18:11

标签: internet-explorer session iframe cookies p3p

我构建了一个表单来逐步提交数据。在两个步骤之间,数据从步骤1继续到步骤2,依此类推。需要那些数据。 50%的访问者使用iframe访问来自不同网站的表单。

最初,数据存储在cookie中。除了iexplorer之外,它几乎适用于所有浏览器。我和P3P玩了好几天但放弃了。没有任何改变。然后我读到会话没有这个问题。所以我将整个登录系统更改为会话。

现在我正在测试系统,但是除了粗糙的Iexplorer之外,每个浏览器仍然使用iframe中的表单。

我有什么可以做的吗?

更新:当服务器位于我的时区时,服务器位于另一个时区。改变时区本来应该有所帮助,但没有。

1 个答案:

答案 0 :(得分:1)

花了一些时间,但它已经解决了。我们走了:

  1. 有时时区不正确。如果差异超过一小时,Iexplorer会话将被摧毁。您可以手动更改时区或让您的webhoster这样做。在PHP中,您可以尝试:date_default_timezone_set(string $timezone_identifier)

  2. 除了1,有时一小时内不可能停留。如果是这样,您可以更改会话缓存过期设置。在PHP中它是<?php session_cache_expire(1440); ?>

  3. iframe中的IE有时会出现下划线问题。使用下划线时,IE会拒绝cookie。所以不要使用它们或确保IE不会以这种方式存储它的会话。

  4. 使用P3P(检查是否合法允许等等!)。在PHP中,您可以使用header('P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

  5. 这就是我尝试过的一切,他们一起工作(不是靠自己)。