PHP使用file_get_contents将数据发布到托管在远程服务器中的另一个php文件

时间:2017-06-03 11:06:49

标签: php post file-get-contents

我可以访问3个不同的远程服务器。它们都拥有相同的 php文件,它的名称为processing.php

在另一台服务器上我有3页:

  1. index.html:包含一个带有POST方法的表单,用于将数据发送到forward.php
  2. forward.php:将表单值转发给其他服务器上的processing.php
  3. processing.php:显示发布的数据
  4. 问题: processing.php中的代码未执行,返回的结果是processing.php源代码的纯文本!!

    forward.php:

    $field1 = $_POST['field1']; 
    $field2 = $_POST['field2'];
    rtrim($_POST['listserver'],"-");
    $listServer = explode("-",$_POST['listserver']);
    
    foreach ($listServer as $server){
        if(!empty($server)){
            $url = 'http://'.$server.'/processing.php';
            $data = array('field1' => $field1, 'field2' => $field2);
            $options = array(
                'http' => array(
                    'header'  => "Content-type: application/x-www-form-urlencoded",
                    'method'  => 'POST',
                    'content' => http_build_query($data)
                )
            );
            $context  = stream_context_create($options);
            $result = file_get_contents($url, false, $context);
            if ($result === FALSE) {
                echo "You can't ";
            }else{
                echo ('result : '.$result);
            }
        }
    }
    

    Processing.php

    $field1 = $_POST['field1']; 
    $field2 = $_POST['field2'];
    $result = $field1+$field2;
    $myFile = "files/result.txt";
    $fh = fopen($myFile, 'w') or die("can't open file");
    fwrite($fh, $result);   
    fclose($fh);
    

    但是在所有服务器中,result.txt都是空的!!

1 个答案:

答案 0 :(得分:1)

Thanx对@MarkusZeller的建议,我设法使用cURL让它工作。

thread非常有用,谢谢 Stack Over Flow 社区!