防止在父php页面之外加载包含的htm页面


Prevent included htm page from being loaded outside of parent php page

我有一个页面thisfile.htm,它包含在thisfile.php 中

我曾经把thisfile.htm加载到thisfile.php上的iframe中,但由于iPad的滚动问题,我最近把所有内容都转换为滚动div和php includes。

我需要防止htm文件独立于php父文件加载。当我使用iframe时,我使用一些javascript做这件事没有问题。但我无法让它与我的php include一起工作——我得到了一个循环。

这是在儿童:

<script type="text/javascript">
if(top.location.href==self.location.href) {
location.replace("thisfile.php");
}
</script> 

这是在家长:

<div class="bigdiv"><?php include "thisfile.htm" ?></div>

提前谢谢。

如果在php中使用include,保护包含的文件的最简单方法是将其放置在web根目录之外。通过这种方式php可以访问它,但浏览器不能,因此它永远不能单独加载。如果你这样做的话,你不需要在孩子中使用任何javascript。

如果thisfile.htm要包含在thisfile.php的div中,只需使用include将其包含在php中即可。您根本不必从外部调用thisfile.htm。事实上,你可以把它放在你的文档根之外,在这种情况下,你根本无法从外部访问它。它将只包含在thisfile.php中。