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


HTML ( PHP ) frame Issue - block user from access page directly

这是我在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"放在else之后吗?

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

非常感谢。

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

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

1.您不使用框架集。Frameset是不推荐使用且注定失败的标记。使用iframe,imo。在当前页面中,您可以只使用INCLUDE php函数来最小化http请求。

2.来自url的请求和来自frame的请求是相同的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>
  1. 在使用框架之前,您可能需要阅读
  2. 防止直接访问php脚本的最佳方法是将其放在文件夹中,并防止访问.htaccess文件中的此文件夹。然后使用include访问它(从用户可以访问的另一个页面)