如何根据用户选择的内容包含php文件

时间:2014-09-25 05:53:38

标签: javascript php jquery ajax

我有很多div,可能是十几个,比如......

<div class="mydivs" id="firstdiv"></div>
<div class="mydivs" id="seconddiv"></div>
<div class="mydivs" id="thirddiv"></div>
<div class="mydivs" id="forthdiv"></div>
<div class="mydivs" id="fifthdiv"></div>

等等

当用户点击任何这些div时,我想将名称如(this.id).php的唯一php文件加载到这些div中。

$(".mydivs").click(function(){
    $(this).html("<?php include " + this.id + ".php ?>");
});

这怎么可能?

2 个答案:

答案 0 :(得分:2)

由于您已经在使用jQuery,因此您可以执行类似

的操作
$(".mydivs").click(function() {
    var that = this;
    $.get(this.id + ".php", function(data, status) {
        $(that).html(data);
    };
});

它是异步的,所以你可能还需要一个小的微调器或其他东西来显示正在加载的东西。

这也将消除任何安全问题。例如,如果今天的代码是从用户输入中读取的,例如getFile.php?file=1.php,那么您将遇到问题。如果文件不存在,上面的当前代码将只返回404。而且它不是including,它只是使用AJAX获取页面,浏览器可以在没有此代码的情况下使用该页面。

答案 1 :(得分:1)

我不太确定这样做是否安全。您不应该使用用户输入来选择PHP include的文件。用户的请求很容易被操作 - 它们可能包含您不希望它们的脚本,或者,如果服务器配置不正确,则包含他们自己的带有恶意代码的PHP文件。

如果您只想加载其他页面,请使用AJAX,并始终检查所请求的资源是否是您希望用户看到的内容。