【问题标题】:include() doesn't work when my page has GET param当我的页面有 GET 参数时,include() 不起作用
【发布时间】:2015-05-21 16:15:38
【问题描述】:

我有一个 header.php 文件,其中包含我的 DOCTYPE 和所有链接/脚本。

我用

<?php
// HTML DOCTYPE insert
include 'header.php';
?>

在我所有页面的顶部,每个人都只有一个标题,而且效果很好。

现在,我有另一个页面,可以从数据库中获取我的产品信息摘要。当有人点击“阅读更多”链接时:

<p>
    <a href="display_product.php/?id='$myProductId'">read more...</a>
</p>

另一个页面打开,显示完整信息... 其实这行得通...

但是在我的新页面 (display_product.php/id=[anynumber]) 上,我包含的文件不起作用。所以我没有导航栏,没有脚本,没有样式表。只有我的数据库中的文本。

奇怪的是,当我复制/粘贴我生成的display_product 页面的 HTML 并在我的浏览器上启动它时,它可以工作... O-o
所以生成的代码是好的。

第二个奇怪的事情是,当我摆脱 /?id... 时,我的布局工作正常(但我当然没有文字了)

你们中有人知道为什么会发生这种疯狂的事情吗?

【问题讨论】:

  • 去掉/?id的斜线
  • 您在其他页面中正确包含了标题?
  • 大家好,非常感谢 Fred -ii 就是这样。它完美地工作。感谢 sergiodebcn 的关心。
  • 所以...问题解决了我接受它。
  • @JulienSegreto 我决定在下面发布一个答案,因为已经给出了其他答案,如果您希望正确接受并关闭问题。

标签: php html


【解决方案1】:

“大家好,非常感谢 Fred,就是这样。它运行良好。感谢 sergiodebcn 的关心。”

由于给出了其他答案并且没有解决实际问题,因此我将我的评论发布到答案中,以结束问题。

  • /?id 中删除斜线

斜线试图指示服务器可能在文件名之后找到一个文件夹,从技术上讲,这看起来就是这里发生的事情。

【讨论】:

    【解决方案2】:

    includerequire 函数存在路径问题的最终解决方案是使用您想要包含或需要的文件的绝对文件系统路径。

    也就是说,你可以说:

    include("C:\\www\\app\\incs\\header.php");
    

    提示 要了解如何为您的项目动态设置包含的绝对路径,请查看框架的两个文件的源代码:

    • index.php
    • webroot/index.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 1970-01-01
      • 2021-03-22
      • 2017-08-21
      相关资源
      最近更新 更多