仅使用php从一个php文件请求信息到另一个

时间:2014-07-29 11:59:54

标签: php

我对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下执行此操作。

1 个答案:

答案 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}的类型数据)。