【发布时间】:2010-09-23 07:08:01
【问题描述】:
我有一个使用 php 制作的网站,它在整个网站中使用服务器端会话。
事实上,它是一个用户登录的站点,它取决于会话变量,如果 all 会话变量有问题,则根本不会加载任何页面。
在网站上,有一个 iframe,其中包含来自其他用户的小消息的提要。
这些小消息旁边有可点击的照片,可以打开用户的个人资料。
现在,每个页面都需要一些格式才能在该特定页面上打开用户的个人资料...实际上只有少数问题页面,但这些页面的 onclick 函数格式必须稍有不同,否则它们会中断页面。
所以我在每个页面($_SESSION["current_page"])上设置了一个会话变量,让提要知道如何格式化可点击的照片。现在 Firefox、Opera、Chrome、Safari 都可以正常工作。
但是 IE6 和 IE7 在需要特殊格式的页面上存在问题。
因此,在稍微拉扯头发之后,我最终开始从服务器打印我的会话变量。
你瞧,在特殊页面上,($_SESSION["current_page"]) 总是设置为“main”而不是“special1”或“special2”。
我在 Firefox 和我提到的所有其他浏览器中打印了相同的会话变量,它们按预期打印出“special1”或“special2”。
谁能想到一些事情 - 可能与提要在 iframe 中的事实有关? - 这会导致 IE 以不同的方式处理服务器端会话变量,或者以某种方式在后台静默启动页面“主”?
我已经非常仔细地检查了提要中对页面“main”的任何引用——它似乎没有任何方式加载该页面。
这对我来说没有意义。
【问题讨论】:
-
对于遇到此问题的其他人,我建议完全关闭 IE 并重新打开它。这发生在我的 IE10 中,我花了大约半个小时尝试了以下所有解决方案,但无济于事。大约十分之一的会话会保持足够长的时间让我登录我的站点,然后再次死亡。重启浏览器后一切正常。
标签: php internet-explorer session