我对php很新,所以我遇到了POST问题。 我试图在2个php文件之间传递信息,其中send_var.php通过POST发送命令,get_var.php执行一些数据操作并返回响应。 send_var.php如下:
<?php
$url = "./get_var.php";
$fields = array('response' => "323243");
$data = http_build_query($fields);
// echo $data."<br />";
$context = stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => "Content-type: text/html\r\n",
'content' => $data
),
));
$out = file_get_contents($url, false, $context);
echo "Info from get_var : " . $out;
?>
get_var.php是:
<?php
$arg1 = isset($_POST['response']) ? $_POST['response'] : null;
if($arg1 == '')
{
echo "No Command! ";
}
if($arg1 != "")
{
echo $_POST['response'];
}
else
{
$_POST['response'] = "123456";
echo $_POST['response'] . " end of get_var";
}
?>
此代码是从堆栈溢出的其他示例中提取的。我得到的唯一输出是“来自get_var的信息:” 显然我缺少一些非常基本的知识。如果有人可以提供帮助,我将不胜感激。我正在XAMPP下执行此操作。
答案 0 :(得分:2)
要运行PHP脚本,您必须通过Web服务器访问它。因此,网址必须是http:
网址,而不仅仅是文件名:
$url = "http://localhost/path/to/get_var.php";
如果您只使用文件名,file_get_contents()
将只返回PHP源代码,它将无法运行它。
此外,您的Content-type
标头错误,应为application/x-www-form-urlencoded
,而不是text/html
(这是响应的内容类型,您的上下文指定{{1}的类型数据)。