会话& IFRAME

时间:2011-12-06 09:37:51

标签: php javascript html

我有一个包含iframe的网站。 展位,网站和iframe中的网站正在检查$_SESSION["login"]。 因此,如果会话被终止,则用户将被注销。

问题: 当用户在网站上闲逛一段时间并且会话到期时,登录页面将出现在iframe中。 (例如,他点击了一个带有target =“iframe”的链接) 我希望登录页面出现在父目录中。

可能的?

4 个答案:

答案 0 :(得分:2)

如果您可以使用Javascript,请使用top访问顶部父页面,例如将其重定向到登录页面。

答案 1 :(得分:2)

试试这个:

<?php 
   if(!isset($_SESSION["login"]))
   {
?>
<script>
   if(self.location.href != top.location.href){
       top.location = '/login.php';
   }
</script>
<?php
   }
?>

答案 2 :(得分:1)

如果会话过期时间不是强制性的,为什么不在浏览器关闭之前将会话设置为不过期?

<?php ini_set("session.gc_lifetime","0"); ?>

此设置设置会话在浏览器关闭之前不会过期。 如果您可以访问php.ini,则可以将其设置为默认值

答案 3 :(得分:1)

在您的登录页面添加支票,无论是否在iframe中加载,如下所示:

var isInIFrame = (window.location != window.parent.location) ? true : false;

如果评估为true,请尝试在顶部窗口中重新加载页面,如下所示:

window.top.location.href="/login.php"