重定向HTTP表单帖子

jqa*_*api 8 html php apache iis curl

一点背景: 我在公共网站上有一个表单,需要将数据发布到防火墙后面的Apache服务器上.我不想通过互联网直接访问此虚拟主机.

目前这就是我正在做的事情:我的DMZ中有一个IIS服务器,这个IIS服务器是唯一允许通过防火墙访问apache服务器的IP服务器.作为临时解决方案,我使用"应用程序请求路由"设置IIS,通过IIS将Apache框呈现给Internet.

*我想做什么:*有一些方法来捕获然后传递表单,而不必将Apache框呈现给互联网.这里的诀窍是POST将来自互联网上的任何地方,被IIS服务器抓取,然后从IIS服务器中继到apache框.我已经研究过使用PHP/cURL做这个但是不确定是否使用这样的东西会起到作用:

<?php

$todo = "";

while (list($name, $value) = each($HTTP_POST_VARS)) {
$todo.=$name."=".$value."&";
}

$ch = curl_init('http://mylanserver/capture.php');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $todo);
curl_exec ($ch);
curl_close ($ch);
?>
Run Code Online (Sandbox Code Playgroud)

有人能指出我正确的方向吗?谢谢.

小智 0

如果我理解正确的话,您想发送帖子数据吗?

尝试这个:

$url = 'http://server.com/path';
$data = array('key1' => 'value1', 'key2' => 'value2')

// use key 'http' even if you send the request to https://...
$options = array('http' => array(
    'method'  => 'POST',
    'content' => http_build_query($data)
));
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
Run Code Online (Sandbox Code Playgroud)

您不必自己构建 $data 数组,只需传递 $_POST 数组即可。