PHP Iframes和Sessions

时间:2017-11-13 09:29:02

标签: php session iframe

我有iframe,可以从不同的域访问。

EG。

Iframe - www.iframe.com
Domain1 - www.domain1.com 
Domain2 - www.domain2.com`

两个域都将访问iframe  不同的用户标识

问题是当我访问domain1时,在domain2中使用了相同的会话。但我不想使用相同的,因为这两个域将具有不同的用户ID。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我不确定你的目标是什么,但如果你提供更多细节,我会编辑答案。 让我们说......

DOMAIN 1 index.php

<?php
// here you have a specific userid
$userid = "user1";
// when you load the iframe, you send userid as parameter
?>
<iframe src="www.iframe.com?userid=<?php echo $userid; ?>"></iframe>

DOMAIN 2 index.php

<?php
// the same thing, but different userid
$userid = "user2";
?>
<iframe src="www.iframe.com?userid=<?php echo $userid; ?>"></iframe>

IFRAME index.php

<?php
// start session
session_start();
//let's say you already have a defined user structure in the SESSION
if (!isset($_SESSION["users"])) {
  $_SESSION["users"] = array(
    "user1" => array("name" => "USER 1"),
    "user2" => array("name" => "USER 2")
  );
}
// now, you can check the userid from the GET parameters to select the correct session
$userid = false;
if (isset($_GET["userid"]))
  $userid = $_GET["userid"];
// check if user is valid
if ($userid && isset($_SESSION["users"][$userid])) {
  // userid is valid
  echo "Welcome ".$_SESSION["users"][$userid]["name"];
} else {
  // userid is not valid
  echo "Who are you, stranger?";
}

注意:您必须确保用户以某种方式登录(使用密码验证用户,因为任何人都可以更改GET参数...)