我有一个名为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: <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";
但这不起作用。我也没有尝试过其他任何事情。请帮帮我。
答案 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的页面的源代码中。
再一次,不非常干净......