Php AJAX自动刷新div而不包括?

Php AJAX自动刷新div而不包括?,php,javascript,jquery,Php,Javascript,Jquery,我需要一个div在我的网站上自动刷新每两分钟左右,我发现这段代码的工作 <script> var auto_refresh = setInterval( function() { $('#mydiv').load('urltocontent.php').fadeIn("slow"); }, 10000); </script> var auto_refresh=setInterval( 函数() { $('#mydiv').load('urltocontent.php'

我需要一个div在我的网站上自动刷新每两分钟左右,我发现这段代码的工作

<script>
var auto_refresh = setInterval(
function()
{
$('#mydiv').load('urltocontent.php').fadeIn("slow");
}, 10000);
</script>

var auto_refresh=setInterval(
函数()
{
$('#mydiv').load('urltocontent.php').fadeIn(“slow”);
}, 10000);
然后我就有了一个

虽然这样做很好,但我想知道是否可以隐藏文件位置?我不希望人们能够访问urltocontent.php,当他们查看我的源代码时可以看到它

有没有办法只刷新div?(不必在内部添加load('urltocontent.php'))

希望很快收到你的来信!谢谢


嘿,伙计们!谢谢你的快速回复!我为我愚蠢的问题道歉

我尝试了Kiren Siva的方法,它阻止用户直接访问站点,但现在我的第一次加载将显示一个“坏请求”


我希望能把它藏起来的主要原因是这样它会更“专业”。因为它链接到我的一个模板文件夹,而我的站点的其他部分存储在该文件夹中。我也不希望好奇的人访问该页面,看到一个丑陋的未经注册的页面。

除非我误解了这个问题,因为本质上,它是无法隐藏的。即使你找到了在源代码中隐藏它的方法,任何人都可以打开Chrome的开发者工具或Firebug,查看服务器的请求


浏览器知道的任何内容,用户都可以找到他们是否想要并拥有正确的工具。

如果浏览器能够访问它,那么URL就不能停止

如果您想更安全、更受保护,则只能使用身份验证+授权。因此,只有登录用户才能访问它。URL限制不是一个好的做法。有人通过机器人程序访问它。但是,只需正确的身份验证即可为您节省


您无法隐藏它,因为Ajax函数需要调用页面

如果您想隐藏该特定页面,那么可以从Ajax调用一个虚拟页面,然后再调用实际页面


例如,从Ajax调用中使用index.php,并从index.php执行位于urltocontent.php(如果有)中的函数。或者将请求从index.php转发到该页面。

如果您显示url,任何人都可以显式调用它。因此,您必须在文件中自行管理它。ie检查请求是否来自ajax

if($_SERVER['HTTP_X_REQUESTED_WITH']) {

 // what ever the code that you want to load in the div

} else {

 // manage if any one call it explicitly

 die("Bad request")

}

你可能会让他们更难找到

这不会阻止任何开发者或真正的黑客,或任何真正想了解情况的人,但会阻止大多数普通用户

只需添加到javascript文件的链接…而不是直接在页面上包含脚本

一级

<script src="myscript.js"></script>
第三层也是最重要的一层

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {

 //Your content to load into the div

 } else {die();}
这三个层次,将阻止99%的人,但再次。。。 XHR头可以被欺骗,所以任何真正想要访问的人都会被欺骗

不幸的是,没有完全隐藏和禁止访问的方法


除了实际的用户身份验证/登录过程之外

每10秒自动刷新一次div。我已经为一些id为mydiv的div演示了它

<script>
setInterval(function() {
$('div#mydiv').load('./somepage.php #mydiv');
    }, 10000);
</script>

setInterval(函数(){
$('div#mydiv').load('./somepage.php#mydiv');
}, 10000);

这是JavaScript,别担心,如果有人想透露这个字符串,他们会的。任何敏感的事情都应该在服务器上完成。通过这种方式,你可以对普通人隐藏,而不是对黑客或开发人员隐藏。这甚至不会让普通人更难做到。任何了解源代码的人都会知道,他们可以打开控制台/Firebug(或其他浏览器中的等效程序),并在那里看到带有URL的请求。很明显,我在帖子中多次提到……没有已知的方法可以做到这一点,因为任何勤奋的黑客/开发人员,可以轻松地伪造报头/呼叫…因此实际上没有“真正的”防御。。。。但是我给了OP 3合法的防御层…为了躲避95%的人…我不明白为什么我会沮丧!我尝试过你的方法,它确实阻止了直接访问,但是我在我的站点上的第一次加载(因为它使用include包含第一个视图)显示了错误的请求。我怎样才能解决这个问题?或者我是否包含该页面的副本(但重命名了url)?它基本上与我的线程上的相同,然后我使用了您的代码,因此用户在访问url时无法查看该页面。但现在它将显示“坏请求”,我必须等待ajax刷新它,然后我的内容才会出现。
<script>
setInterval(function() {
$('div#mydiv').load('./somepage.php #mydiv');
    }, 10000);
</script>