如何使用`include`传递参数?

时间:2011-07-24 09:13:56

标签: php

我有一个名为customers.php的PHP脚本,它通过URL传递一个参数,例如:

http://www.mysite,com/customers.php?employeeId=1

在customers.php脚本中,我拿起参数:

$employeeId = $_GET['employeeId'];

这很好用。我还有一个HTML文件,其中包含一个输入参数的表单,并运行另一个PHP脚本,即:

<form method="post" action="listcustomers.php">
  Employee ID:&nbsp; <input name="employeeId" type="text"><br>
  <input type="submit" value="Show">
</form>

然后在我的listcustomers.php脚本中,我拿起参数:

$employeeId = $_POST['employeeId'];

到目前为止一切顺利。但他是我被困的地方。我想运行我的customers.php脚本,并传递我在表单中拾取的参数。我确信这很简单,但是无法让它发挥作用。我试过了:

include "customers.php?employeeId=$employeeId&password=password";

但这不起作用。我也没有尝试过其他任何事情。请帮帮我。

6 个答案:

答案 0 :(得分:18)

您不能将查询字符串(类似于?x = yyy&amp; vv = www)添加到类似的包含中。幸运的是,您的包含可以访问它们之前的所有变量,因此如果在您致电之前定义了$_GET['employeeId']

include 'customers.php';

然后customers.php也可以访问$_GET['employeeId'];

答案 1 :(得分:2)

您的包含文件可以直接访问GET变量。

答案 2 :(得分:2)

PHP包括真正包含;他们将该位置的一段代码附加到此位置。

PaulPRO的回答很可能告诉您想要实现的目标,但其他变量也可以在包含的文件中使用。因此,如果在index.php中定义$foo = "bar";并在该行之后包含layout.php,则可以在该layout.php文件中调用此$foo变量。

如果您真的想要将URL传递给该文件,您可以将URL插入变量并在包含文件中将其解析为parse_url

编辑:是的,我不建议将查询参数添加到实际的包含网址,因为它开始搞乱GET数组,最终你会对应该存在的东西感到困惑并开始将你的头撞到墙上。

答案 3 :(得分:0)

您可以通过会话

传递值

<?php
    $_SESSION['name']='peter';
    $_SESSION['age']=28;
    $_SESSION['name']='Peter';
    include('person_info.php');
?>

在person_info.php中,启动会话并将所有会话值放入变量并取消设置会话。

答案 4 :(得分:0)

您也可以使用$GLOBALS来解决此问题。

 $tit = "Hello";

 $GLOBALS["docTitle"] =  $tit;

 include ("my.php");

答案 5 :(得分:-2)

这不是那么干净但如果您需要输入静态参数,这将有效:

if (true){
    echo "<meta http-equiv='refresh' content='0;url=query_source.php?random=red%20bull' />";
}
else
{
    echo "<meta http-equiv='refresh' content='0;url=query_source.php?random=blue%20bull' />";
}

只需将其放在调用query_source.php的页面的源代码中。

再一次,非常干净......