【问题标题】:PHP - load .php page of a particular get[] variable into a particular div?PHP - 将特定get []变量的.php页面加载到特定div中?
【发布时间】:2026-01-17 05:30:01
【问题描述】:

我知道这很容易,但是自从我完成 php 以来已经有很长时间了。

我有两种类型的链接。一个使用$_get[]p,另一个使用g。 喜欢:

<a href='?p=pages/page-type-1'>page 1</a>
<a href='?g=pages/page-type-2'>page 2</a>

点击特定链接后,我想通过include('')方法将.php页面加载到特定id的div中。

非常感谢。

【问题讨论】:

  • 你应该非常小心地这样做;猜测服务器上关键文件的路径并让您的脚本将它们提供给最终用户是微不足道的。关于技术问题,您希望页面在加载新内容的情况下执行完全刷新,还是通过 JavaScript 异步执行?

标签: php html get include


【解决方案1】:
if($_GET['p'] === 'pages/page-type-1') {
  include('page-to-include.php');
}

无论您做什么,都不要将变量从 $_GET 传递给包含。这是极其危险的!您不能信任 $_GET 中提供的数据,因此您总是希望专门对其进行测试并避免将其传递给其他代码,除非您必须这样做。

还要注意使用 === 来强制进行值检查和类型检查。如果不熟悉,请在 PHP.net 上查找 === 运算符。

【讨论】:

  • 我会补充一点,如果你真的必须这样做,你可以从 $_GET 传递变量来包含,但它非常危险。你需要非常非常小心你在做什么。最好避免。
【解决方案2】:

您说您希望加载特定 div id 中的页面,对吗?您可以通过使用 AJAX 来实现这一点。

在你的 .js 文件中这样写。

    $.ajax({
     type:POST,
     url:'path/of/your/php/file/for/requesting/data.php',
     success:function(data){
      var get_data = parseJSON(data);

      //Target the specific div you want to display your requested data that returned to you by your php.

        $('#divid').html(get_data.name);

     }
});

【讨论】:

    【解决方案3】:

    这应该可行:

    <?php
    if(isset($_GET['p']) && ($_GET['p'] === pages/page-type-1){
    require_once 'some.php';
    }
    

    如果您想对您的 GET 数据做任何事情,请先对其进行清理。永远不要相信您的用户

    【讨论】:

      【解决方案4】:

      很抱歉,如果这不是您的问题,但解决方案可能是对两个页面都使用 1 个 GET 变量,然后使用开关来确定您想要哪个页面:

      if (isset($_GET["p"]))
      {
          switch ($_GET["p"])
          {
              case "pages/page-type-1":
                  include("page-type-1.php");
                  break;
      
              case "pages/page-type-2":
                  include("page-type-2.php");
                  break;
      
              default:
                  include("page-not-found.php");
          }
      }
      

      【讨论】: