如何包含php文件取决于用户选择的内容


How to include a php file depending on what the user select

我有很多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 ?>");
});

这怎么可能?

由于您已经在使用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获取页面,浏览器可以在没有这些代码的情况下做到这一点。

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

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