background image

一个登录页面,被别的网站用

iframe 嵌进去后,死活无法登录(只在 IE 中存在这种情况)。

主要是

session 无法被保存的问题,下面把个人的解决过程分享个大家

今天搞的一个登录页面,被别的网站用

iframe 嵌进去后,死活无法登录(只在 IE 中存在这

种情况)。

 

 
很明显,

session 无法被保存。但是直接在地址栏打开那个登录页面,一切都正常啊。真是奇

怪啊。

 

 
在网上搜索了一下。发现这个问题还真有不少人提及到。最后的解决方法是在那个登录页面
里加上以下代码:

 

代码如下

:

 
<span style="font-family:Microsoft YaHei; font-size:14px">header('P3P: CP="ALL ADM DEV 
PSAi COM OUR OTRo STP IND ONL"'); 
session_start();</span> 
 
可能这个问题跟我的登录页面是采用

javascript 的 location 跳转也有关。但没有深入测试研究。

 
 
以下是拓展阅读

 
--------------------------------------------- 
 
今天在处理腾讯朋友应用的时候

,测试给我发来个工单,说应用在 IE7 上无法使用.出现登陆

超时错误

 
第一反应是

session 丢失了. 

 
于是上网找了下

 IE7 iframe session 丢失问题.后来找到如下文章,问题解决: 

 
============================================= 
 
昨天,我在校内上做的时间日记终于上线了。上线第一天有

80 多个用户安装,但却以外收

到不少用户的反馈说应用不可用。我之前都是在

firefox 上开发的(估计校内工作人员也是

firefox 审核的),在使用 IE7 测试时,却发现首页之外的页面全都无法正常打开。 

 
在网上查找了许多资料,发现在

IE7 中存在这样的问题:如果页面中存在着一个或多个

iframe 的子页面,那么在子页面中创建 session 可能无 法成功,这样 session 数据就无法和
其他页面所共享。在开发校内、

51 应用时,假设采用 iframe 方式,很可能会遇到这样的问题。

而且这个问题只存

 在于 IE7 浏览器中,我在 firefox, IE6 和 chrome 等浏览器中测试均没有

问题。

 

 
解决方案是:在运行

session_start 之前,在程序中加上如下一句(以 php 语言为例),大致

是向浏览器声明一下安全级别,这样

iframe 子页面在创建 session 时就不会有问题了: