Php 会话和iframe的问题

Php 会话和iframe的问题,php,session,iframe,Php,Session,Iframe,下午好 我有一个网站,允许您通过Iframe登录并使用第三方应用程序。但是,一旦他们完成应用程序,它将重定向到iframe内的我们的站点,只有当用户从iframe重定向到我们的站点时,他们才不会登录到iframe内。将会话从主机传输到Iframe的最佳方式是什么 到目前为止,我已经在iframe www.test.com?sid=34324vcsd3中找到了我认为非常有效的工具。但是,无论何时,他们都会将我重定向到当前未通过Iframe登录的www.mysite.com/page。即使我是通过主

下午好

我有一个网站,允许您通过Iframe登录并使用第三方应用程序。但是,一旦他们完成应用程序,它将重定向到iframe内的我们的站点,只有当用户从iframe重定向到我们的站点时,他们才不会登录到iframe内。将会话从主机传输到Iframe的最佳方式是什么

到目前为止,我已经在iframe www.test.com?sid=34324vcsd3中找到了我认为非常有效的工具。但是,无论何时,他们都会将我重定向到当前未通过Iframe登录的www.mysite.com/page。即使我是通过主机页登录的,我也不是通过Iframe登录的

我想我有两个选择 1.找到与Iframe共享会话的方法

2找到一种使用HTTP_Referer从iframe页面预传输中提取会话ID的方法

例如,我从test.com?sid=3d3er3e3发送到www.test.com/page,其中test.com/page调用HTTP\u referer。我可以成功地获得test.com?sid=3d3er3e3,但我不确定如何提取sid

你们推荐什么?是否可以与IFrame共享会话?或者有没有办法从http_referer字符串中提取sessionID


或者推荐一个更好的解决方案,如果你知道的话——我对这一点很陌生,但已经花了一天多的时间试图解决这个问题。任何帮助都将不胜感激

据我所知,您试图通过GET变量传递会话信息,而不是使用浏览器cookie。请在此处阅读有关会话的PHP手册:

关于会话如何工作的快速、简单的解释是,您可以在一个页面上完成此操作:

<?
session_start();
$_SESSION['username'] = "foobar";
?>

。。。然后在另一页上:

<?
session_start();
echo $_SESSION['username'];
?>


…第二个页面将显示“foobar”,无论用户来自何处(只要他们至少访问过第一个页面一次)。

据我所知,您试图通过GET变量传递会话信息,而不是使用浏览器cookie。请在此处阅读有关会话的PHP手册:

关于会话如何工作的快速、简单的解释是,您可以在一个页面上完成此操作:

<?
session_start();
$_SESSION['username'] = "foobar";
?>

。。。然后在另一页上:

<?
session_start();
echo $_SESSION['username'];
?>


…第二个页面将显示“foobar”,无论用户来自何处(只要他们至少访问过第一个页面一次)。

我建议永远不要使用Iframe。感谢您的建议-但不要使用Iframe。这是一个非常简单的应用程序,但是让第三方应用程序改变它们的工作方式会花费我们太多的成本。我建议永远不要使用Iframe。谢谢你的建议-但是摆脱Iframe不是一个选项。这是一个非常简单的应用程序,但是让第三方应用程序改变它们的工作方式会花费我们太多。感谢您的帮助,但到目前为止,问题是尽管登录到“主机”页面(包含Iframe的页面),但要通过Iframe将会话变量传输到网站。例如-如果我登录到我的网站,转到我网站的myaccount页面,然后尝试通过Iframe打开myaccount页面,在我再次登录之前,Iframe中的会话不存在。@RobertDickey当然不存在,它们是特定于域的,出于明显的安全原因。Dagon,我知道这一点,这就是为什么我要找一个变通方法。@RobertDickey如果有一个变通方法可以让站点a阅读站点B cookies,谁会使用它?也许我误解了。当你说,“我有一个允许你通过Iframe登录和使用第三方应用程序的网站”时,你是说他们登录到你的网站,还是Iframe中的第三方网站?如果他们登录到您的站点,那么当iframe在过程结束时返回到您的站点时,您在登录期间设置的会话变量没有理由不存在。如果他们登录到第三方网站,如果他们还没有这样做,你就必须和第三方公司谈谈传递身份信息的问题。谢谢你的帮助,但到目前为止,问题是尽管登录到“主机”页面(包含Iframe的页面)要执行的会话变量通过Iframe传输到网站。例如-如果我登录到我的网站,转到我网站的myaccount页面,然后尝试通过Iframe打开myaccount页面,在我再次登录之前,Iframe中的会话不存在。@RobertDickey当然不存在,它们是特定于域的,出于明显的安全原因。Dagon,我知道这一点,这就是为什么我要找一个变通方法。@RobertDickey如果有一个变通方法可以让站点a阅读站点B cookies,谁会使用它?也许我误解了。当你说,“我有一个允许你通过Iframe登录和使用第三方应用程序的网站”时,你是说他们登录到你的网站,还是Iframe中的第三方网站?如果他们登录到您的站点,那么当iframe在过程结束时返回到您的站点时,您在登录期间设置的会话变量没有理由不存在。如果他们登录到第三方网站,如果他们还没有这样做,你就必须和第三方公司谈谈传递身份信息的问题。