PHP:在多个iframe中使用iframe中设置的会话变量

时间:2010-10-06 09:22:29

标签: php session iframe session-variables

我使用名为liferay的内容管理系统,可让您非常轻松地将iframe添加到页面中。我有各种不同的iframe,我想使用相同的PHP会话变量。如果主网页正在设置会话,这将不是问题。问题是会话是在一个iframe中创建的,而我想在另一个iframe中使用它们?

通常会话ID可以通过url传递,但这不是我设置的方式。没有这样的导航。 iframe根据第一个iframe中设置的会话变量显示数据库中的内容,但它们没有链接。

有人可以帮助我吗?我不确定iframe如何分享会话变量。

谢谢,

Jonesy

2 个答案:

答案 0 :(得分:1)

如果域名保持不变,则第一个iframe将创建会话,第二个iframe将在session_start()

之后启动

你真的不需要在这个或任何东西的URL中传递会话。写入会话数据时的第一个iframe将锁定会话数据。但是存在一个问题,使用iframe,您永远无法确定第一个iframe是否先加载,可能是网络拥塞的原因,也可能是第二个iframe首先加载的情况。所以也许可以反击这个加载第二个iframe的延迟。

答案 1 :(得分:0)

正如Sabeen所说,如果你使用基于cookie的会话跟踪(这是PHP默认使用的,如果用户代理支持cookie),会话将自动被选中。如果Iframe中加载的页面来自不同的子域,则可能会遇到麻烦。在这种情况下,您必须使用session.cookie_domain配置变量。

ini_set("session.cookie_domain", ".domain.com");