我有一个包含iframe的网站。
展位,网站和iframe中的网站正在检查$_SESSION["login"]
。
因此,如果会话被终止,则用户将被注销。
问题: 当用户在网站上闲逛一段时间并且会话到期时,登录页面将出现在iframe中。 (例如,他点击了一个带有target =“iframe”的链接) 我希望登录页面出现在父目录中。
可能的?
答案 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"