【问题标题】:Passing php session and vriables between iframes在 iframe 之间传递 php 会话和变量
【发布时间】:2013-09-23 15:33:50
【问题描述】:

我有一个包含多个 iframe 的网站。第一个是登录框架,一旦成功登录,它就会启动一个 php 会话。代码如下:

<?php
header('P3P: CP="CAO PSA OUR"');
session_start();
$_SESSION["email"] = $user_info[email];
$_SESSION["password"] = $user_info[password];
echo session_id();
?>

会话通过登录 iframe 启动后,我希望会话仍然处于活动状态,并且变量在不同的 iframe 中可用(它们具有相同的父页面)。不幸的是,第二个 iframe 在加载后会创建一个全新的会话并且变量会丢失。帮忙?

如何保持会话活动并在 iframe 之间传递会话变量?

第二个 iframe 中的代码如下所示:

<?php
header('P3P: CP="CAO PSA OUR"');
session_start();
echo session_id();
?>

这两个框架有不同的会话 ID。这就是我知道会话没有成功传递的方式。

谢谢!

【问题讨论】:

  • iFrame 是否在同一个(子)域上加载页面?
  • iFrame 何时加载?是同时吗?我的猜测是加载 iFrame 时未设置会话 cookie,因此它会创建一个新会话。如果刷新页面/iFrame 会发生什么?
  • iframe 在同一个域上加载。登录 iframe 必须在第二个 iframe 可能加载之前完成登录处理(并因此启动会话)。同样,我要求每个 iframe 回显会话 ID,它们会产生不同的值。我试过刷新,没有运气:/
  • 您是否考虑过一种无需离开初始页面即可登录的替代方法——比如 AJAX?在 iframe 中管理这听起来像是一种痛苦的方式。

标签: php variables session iframe


【解决方案1】:

您可以将?PHPSESSID=session_id() 传递给 iframe 网址。当配置(php.ini)设置为默认时,PHP会检测到它。

【讨论】:

    【解决方案2】:

    发现问题。

    结果证明编码很好,但有一些关于我的网络主机 (iPage) 如何处理 php 会话的细节。必须得到一些帮助来编辑 php.ini 文件。不幸的是,解决方案超出了我的理解水平,但至少其他人知道解决方案就在那里!感谢所有帮助和评论的人。

    【讨论】:

      猜你喜欢
      • 2010-12-30
      • 2013-06-30
      • 2011-06-09
      • 2018-09-28
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多