【问题标题】:Using $_GET in PHP include with variable in the include URL在 PHP 中使用 $_GET 包含包含 URL 中的变量
【发布时间】:2013-05-02 20:05:10
【问题描述】:

首先,请原谅我的问题措辞含糊。

我要做的是创建一个简单的 odbc 脚本,并将其存储在一个文件中,该文件将多次包含在我的主 PHP 文件中,并带有不同的变量。

当包含它们时,我想指定一些变量传递给它。

我的例子是:

主页

include("table-fields.php?table=sometable");

table-fields.php

$table = $_GET['table'];
odbc_exec(some database function WHERE TBL= $table);

但是,如果我的理解是正确的,因为 $_GET 是全局的,它会寻找 main.php?table=

更好的选择是在包含之前设置变量,例如:

$table = some table;
include("table-fields.php");

table-fields.php

odbc(some database function WHERE TBL= $table);

如果可能的话,我想尽量避免这种情况。

谢谢,编辑

【问题讨论】:

  • $table = $_GET['table']; odbc_exec(some database function WHERE TBL= $table); 应该可以工作...
  • 从硬盘读取文件与从 Internet 下载文件是完全不同的操作。也许你会感到困惑,因为include() 实际上可以同时做这两件事。

标签: php variables get include odbc


【解决方案1】:

当包含一个文件时,该文件的内容被输出到当前文件中,它不是HTTP请求的,所以你需要做的就是:

$table = "sometable";

include("table-fields.php");

在包含的文件中,只需使用变量:

odbc(some database function WHERE TBL= $table);

因为包含的内容就像您将其写入主文件等一样。

【讨论】:

  • 奇怪的是,在我们网站的另一个页面中,我有一个脚本可以从数据库中获取用户图像。这以相同的方式完成,其中我包含(“getimage.php?id=x”)。然后,在该脚本中,我有一个 $_GET['id'] 然后查询数据库。这适用于所有 ID。唯一的区别是,在该脚本的末尾,我设置了 header("type: image/jpeg") 然后回显了内容。在这种情况下可以做类似的事情吗?谢谢
  • @Eds - 关键是,在使用 PHP 包含时,您不必使用查询字符串来获取数据,而且您不应该这样做,因为包含的文件将是包含文件的一部分。在页面上使用锚点等来请求基于 ID 等的图像时,您只需要查询字符串,而不是在包含时。
  • 好的,没问题。我想无论如何这样做会更整洁。谢谢
【解决方案2】:

您必须在包含之前声明变量,它将在它下面的代码中可用。

$_GET 用于从 HTTP 请求中获取数据。

正如您所指出的,这将是正确的方法:

$table = some table;
include("table-fields.php");

只需将include 想象为您的代码中的复制和粘贴。包含内容中的代码将替换 include 调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    • 2011-05-23
    • 1970-01-01
    • 2012-11-03
    • 2011-10-31
    • 2014-03-01
    • 2017-09-09
    相关资源
    最近更新 更多