PHP/JQUERY定义包含的页面


PHP/JQUERY Defining an included page

我有一个网站,使用JQUERY在div容器内动态加载页面。

            $("div#container div.content div.main").load(siteLink+"/"+newloadVal);

它工作得很好,然而,我正在寻找一种方法来阻止访问者通过他们的实际网络链接访问这些包含的页面,如site.com/pagelink.php。

我的主要问题是,是否有一种方法可以使用Javascript进行类似的PHP定义("THROUGHJS,true);因此,如果访问者通过其实际链接访问包含的页面,它将重定向到错误页面?

有没有一种简单的方法可以做到这一点,主要是通过JUST PHP?


我没有尝试过,但这可能吗:

在父页面中,有DEFINE("主页",true)、

然后在动态加载的页面中,具有:

if(defined("mainpage")){
...}
else { exit; } // Show an error?'

我不确定这是否可能,因为动态页面不是通过PHP加载的,因此父页面中定义的函数对动态页面来说不会"存在"?

感谢您提前提供的帮助。(如果这看起来令人困惑,很抱歉):P

一个可能的半解决方案:
为用户的会话生成一个唯一密钥,并将其传递给其他页面的所有请求
对于通过jquery的每个附加页面请求,请将该键作为查询参数(或作为post数据)。加载所需页面时,请检查密钥是否与用户的会话匹配。如果没有,则显示错误
类似这样的东西:

$("...").load(siteLink + "/" + newloadVal + "?key=<?php echo $session_key ?>");

这实际上不会阻止用户直接访问您的页面,但需要他们知道一个有效的密钥。为此,(普通用户)必须访问主页,查看源代码,找到密钥等。

EDIT:我最终处理了一个AJAX请求,这样我就可以使用请求头来确定页面是否使用AJAX加载。

感谢大家的帮助:)