PHP Logout脚本,框架集中有4个框架

时间:2010-11-05 05:00:33

标签: php javascript jquery frames logout

我有一个研究logout.php文件非常有效,但我面临的问题是将脚本放入一个新的'内部网风格'管理站点,该站点在一个框架集中使用4个框架(标题,左,中,右) )。

我需要满足两个要求,我很难找到解决方案(是的,我知道今天的消费者网站的框架很糟糕,但重申一下,这是一个内部系统管理面板,随处可见小部件)。

  1. 当用户点击顶部框架中的“注销”按钮时,整个页面将被定向到logout.php,然后重定向到单个页面“home.php”。截至目前,点击退出只会将该特定帧带到我想要的目的地。

  2. 当用户登录时,会创建一个SESSION变量并设置为true;如果在没有SESSION [validated] = true的情况下访问页面,则用户将被注销。与上面类似,如果发生这种情况,我需要将整个框架集导向logout.php。

  3. 我试图在没有javascript的情况下实现这一目标(因为这显然可以简单地禁用,JS不是真正的安全措施)。

    过去有人曾经处理过这个问题吗?

2 个答案:

答案 0 :(得分:3)

退出按钮是否为链接?如果是这样,您是否不能使用target="_parent"来更改带有框架集的页面?

修改
回复2:如果会话超时,你可以创建一个中间页面,其中包含使用target=_parent和下面的JavaScript的链接,这两个链接都将突破该框架。

<script type="text/javascript">
if (top.location != self.location) top.location = 'login.php'
</script>

这很好,因为如果他们启用了JavaScript,他们甚至都不会注意到,如果他们不这样做,他们仍然会突破框架。

答案 1 :(得分:0)

第1部分的解决方案:

点击这样的退出按钮:

<a href="/logout.php" target="_top">logout</a>

然后让logout.php完成注销的所有艰苦工作(可能只是清除会话),然后将用户重定向到正确的框架集(使用PHP的头命令进行重定向)。

第2部分的解决方案:

这不应该随机发生。如果您登录,则会话设置为validated = true。你没有“遇到”你的会话碰巧的页面。

但是,您可以包含一个PHP文件(或者如果您足够聪明,可以在单一入口点实现),如果您的会话以某种方式失效,则重定向到注销页面。见上文。