防止包含htm页面被加载到父php页面之外

时间:2011-06-28 22:28:34

标签: php include parent-child

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

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

我需要阻止htm文件独立于php父级加载。当我使用iframe时,我用一些javascript做这个没有问题。但我不能让它与我的PHP包括 - 我得到一个循环。

这是在孩子身上:

<script type="text/javascript">

if(top.location.href==self.location.href) {

location.replace("thisfile.php");

}

</script> 

这是父母:

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

提前谢谢。

2 个答案:

答案 0 :(得分:4)

如果您在php中使用include,保护您所包含文件的最简单方法是将其置于Web根目录之外。这样php可以实现它,但浏览器不能这样,所以永远不能单独加载。如果你这样做,你就不需要孩子的任何javascript。

答案 1 :(得分:1)

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