HTML(PHP)框架问题 - 直接阻止用户访问页面

时间:2012-08-06 05:15:00

标签: php html frame block

这是我的代码来自frame.php

<FRAMESET rows="20, 200" FRAMEBORDER=NO FRAMESPACING=0 BORDER=0>
<FRAME src="menu1.html">
<FRAME src="test1.php">
</FRAMESET>

我想知道是否有办法阻止人们直接去“test1.php”?

我希望人们留在frame.php,如果人们试图直接转到“test1.php”,它会给你错误。有这样的方式或代码吗?

在进入此“frame.php”页面之前,我的用户需要登录。

我是新手,我正在尝试从用户身份验证和配置页面移动一些东西,但不要认为有什么对我有用。

我在“menu1.html”中包含用户身份验证和配置页面。此部分显示类似“欢迎用户名|注销|菜单的休止符”。当人们登录时,他们可以访问“frame.php,包括test1.php”

我找到了这个,但不确定如何使用它。我在“前进”区域放了什么代码?另外,我应该把“logoff.php”放在其他地方之后吗?

if ($_SERVER['HTTP_REFERER'] == 'http://mysite.com/downloadlist.php') {
//proceed
} else {
//kick user out
}

非常感谢。

3 个答案:

答案 0 :(得分:2)

使用test1.php中的以下javascript片段来确定是否从iframe加载了test1.php:

if (window.location != window.parent.location) {
    // test1.php is within iframe
} else {
    // test1.php is accessed directly
}

答案 1 :(得分:2)

1.您不使用frameset。 Frameset已弃用且注定为标记。使用iframe代替,imo。在当前页面中,您可以使用INCLUDE php函数来最小化http请求。

2.来自url和来自框架的请求是相同的GET请求。因此,您无法在服务器上理解,该请求来自:框架或其他地方。但你可以使用js。我不推荐你这个,但它的工作原理如下:

<body onLoad="fromFrame">
    // test1.php code here
</body>
<script type="text/javascript">
function fromFrame() {
    if (window.top === window.self)
       document.location.href = "errorRedirectUrl";
}
</script>

答案 2 :(得分:0)

  1. 您可能希望在使用框架之前阅读this
  2. 阻止直接访问php脚本的最佳方法是将其放在一个文件夹中,并阻止访问.htaccess文件中的此文件夹。然后使用include访问它(从另一个“好”供用户访问的页面)。