在PHP中使用$ _GET包含变量在包含URL中

问题描述:

Firslty,请原谅我的问题不恰当的措辞。

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

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

我的例子是:

首页

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

表fields.php

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

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

会更好的选择只是设置变量包括前乐,例如:

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

表fields.php

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

我要尽量避免,如果可能的。

感谢,编

+0

'$ table = $ _GET ['table']; odbc_exec(某些数据库函数WHERE TBL = $ table);'应该可以工作... – Ryan 2013-05-08 14:31:04

+0

可能是重复的http://stackoverflow.com/questions/5998705/url-querystring-with-a-php-include – Mattt 2013-05-08 14:31:42

+0

读一个来自硬盘的文件与从互联网下载文件完全不同。也许你感到困惑,因为include()实际上可以完成这两件事情。 – 2013-05-08 14:38:20

当其中一个文件,该文件的内容输出到当前文件,它不要求与HTTP,因此,所有你需要做的是:

$table = "sometable"; 

include("table-fields.php"); 

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

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

为包含的内容会工作得一样,如果你在主文件等写

+0

奇怪的是,在我们网站的另一个页面上,我有一个脚本从数据库中获取用户图像。这是以相同的方式完成的,我在其中包含(“getimage.php?id = x”)。然后,在该脚本中,我有一个$ _GET ['id'],然后查询数据库。这适用于所有ID。唯一的区别是,在该脚本的末尾,我设置了标题(“type:image/jpeg”),然后回显内容。在这种情况下可以做类似的事吗?谢谢 – Eds 2013-05-08 14:47:40

+0

@Eds - 问题是,当使用PHP包含时,您不必使用querystring来获取数据,而且您应该不会因为包含的文件将成为包含文件的一部分。你只需要在你的页面上使用锚点等来请求基于ID等的图像时,querystrings,而不是当做包括。 – adeneo 2013-05-08 15:49:13

+0

好的没问题。无论如何,我认为无论如何都要这么做。谢谢 – Eds 2013-05-08 15:55:34

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

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

正如你指出的那样,这将是正确的做法:

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

试想include作为复制和粘贴代码内。包含的内容中的代码将会代替include调用。