一个页面中的iframe是一个独立的浏览窗口,将与Web服务器建立一个独立的会话。
从1.asp转入2.asp的过程中,相当于关闭了1.asp中1.php这个ifrme,然后在2.asp中新开一个iframe打开2.php.
实际的效果就相当于你打开一个浏览器浏览1.php,然后关闭这个浏览窗口,再重新打开浏览器,浏览2.php。session在关闭浏览器窗口时生命周期就已经结束,不会在2中显示session的内容。
从1.asp转入2.asp的过程中,相当于关闭了1.asp中1.php这个ifrme,然后在2.asp中新开一个iframe打开2.php.
实际的效果就相当于你打开一个浏览器浏览1.php,然后关闭这个浏览窗口,再重新打开浏览器,浏览2.php。session在关闭浏览器窗口时生命周期就已经结束,不会在2中显示session的内容。
如果有n个iframe那么ie就和服务器之间建立n+1个连接。
当服务器检测到对应的窗口关闭,则session销毁。1:ie先直接浏览1.php:该session建立,对应浏览器的窗口A。
2:然后在此ie中打开1.asp:该A窗口未关闭,session保持。
3:然后通过"按钮",链接跳转到2.asp:该A窗口未关闭session保持
4:2.asp的iframe中:由于session没有销毁得到了 session的值.
如果没有第一步
1:在此ie中打开1.asp:A窗口对应1.asp除iframe以外的部分,B窗口对应1.php的iframe。 session对应B窗口。
2:然后通过"按钮",链接跳转到2.asp:在离开1.asp时,B窗口关闭,session销毁。A窗口未关闭,但不对应session。3:在打开2.asp时,A窗口没有对应的session,B窗口是在打开2.asp时新建的,所以没有session信息。
可能表达得不清楚,希望有知道的给楼主解释一下。
session变量能正常显示
brokenme(飓飞) 的解释是错误的!
需要在php页面的第一行,在session_start之前加上以下一句
header('P3P: CP="CAO PSA OUR"');
session变量能正常显示
brokenme(飓飞) 的解释是错误的!-----------------------------------------------------
你的PHP环境是什么样的?我试过N遍了都是一样```