1

我正在尝试从另一个 php 文件 A.PHP 加载一个 php 文件 B.PHP,另外我想通过 $_GET 发送一个变量。这两个文件都存储在同一个目录中。我尝试了几种方法:

1)直接写在我的文件上:

require (__FILE__)."\b.php?action=1";

执行回显的结果是:C:\xampp\htdocs\pfc\html\a.phpb.php?action=1,所以不正确!

所以我尝试了:

require (__FILE__)."\..\b.php?action=1"; INCORRECT again

2)在我设置的不同 PHP 上:

define('MAINDIR',dirname(__FILE__) . '\\');
define('DL_DIR',MAINDIR . 'pfc\\html\\');   // Also tried with a normal '/'

然后在我的文件上,我只是这样做:

require DL_DIR."b.php?action=1";  I also tried with include, but I guess this has nothing to do.

在这种情况下,如果我做回声,我会得到:C:\xampp\htdocs\pfc\html\b.php,所以正确!

然而,当我运行我的程序时,我得到下一个错误:

警告:需要(C:\xampp\htdocs\pfc\html\b.php?action=1):无法打开流:C:\xampp\htdocs\pfc\html\a.php 中没有这样的文件或目录101 号线

警告:require ():在 C:\ xampp\htdocs\pfc\html\a.php 在第 101 行

显然它无法在文件中找到文件。所以我再次尝试了这个版本的'..\'......错误!

3rd)将真实路径添加到方程

require realpath(dirname(__FILE__)."\b.php?action=1");

而且,我再次得到:

警告:要求():文件名不能为空 C:\xampp\htdocs\pfc\html\HTML_menu_supervisor.php 第 101 行

警告:要求():在第 101 行的 C:\xampp\htdocs\pfc\html\HTML_menu_supervisor.php 中打开 '' 以包含 (include_path='.;C:\xampp\php\PEAR') 失败

我真的不知道发生了什么事。请有人帮助我!并提前感谢:-)

4

3 回答 3

2

据我所知,您不能通过requireor传递参数include。因此,我相信您require的 s 实际上正在寻找一个不存在的文件(因为您可能没有名为b.php?action=1.

您可以设置所需的任何变量并在required 文件中引用它们(假设它们在同一范围内)。

于 2013-12-11T05:48:58.143 回答
0

您必须使用 include 或 require 函数,如下所示 -

include('b.php');
or
require('b.php');
于 2013-12-11T06:17:36.427 回答
0

您不必获取包含的参数。

如果你的网址看起来像这样

localhost/myfunction.php?action=1

myfunction.php:

    require (__DIR__)."\..\b.php";

您可以包含您的文件,它会开箱即用地获取 GET 变量。

包含是您包含的文件的复制和粘贴。

所以你b.php应该看起来像这样:

$allowedGetValues = array(1,2,3,4);


if(isset($_GET['action']) && array_key_exists($_GET['action'],$allowedGetValues) ){
    .. 
}
于 2013-12-11T05:53:11.347 回答