这几天在做淘宝应用的时候碰到一个比较奇怪的问题,重要的信息在页面跳转之后总是不能保存,搞了半天才知道是session丢失的问题,搜索相关资料才发现php里面还存在session在ie的IFrame下存在易丢失这样的一个问题,遂总结了几种解决办法,好话不多说,如下。
解决IE下Iframe的Cookie失效问题
问题的根是由于iframe跨站点cookie被阻导致session失效。IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookie
解决方法: 很简单,在要嵌入的内容中(应用页面)输出P3P的主机头声明加入如下PHP代码:
header('P3P: CP=CAO PSA OUR'); //加入P3P防止IE下写Cookeis失败
解决IE下Iframe的Session失效问题
IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookie,Firefox目前还不支持P3P安全特 性,firefox中不存在此问题
具体的解决方式是在分页的Action处理方法中加上如下代码:
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');