HTML/PHP将方法发布到不同的服务器

HTML/PHP将方法发布到不同的服务器,php,html,post,Php,Html,Post,我想创建一个POST方法表单,将详细信息发送到另一台服务器(即,不是它的本地主机)上的PHP脚本。这可能吗?我想GET很好,那么POST也可以吗? <form method="POST" action="http://the.other.server.com/script.php"> 如果要在服务器上执行此操作(即,希望服务器充当代理),可以使用cURL //extract data from the post extract($_POST); //set POST variab

我想创建一个POST方法表单,将详细信息发送到另一台服务器(即,不是它的本地主机)上的PHP脚本。这可能吗?我想GET很好,那么POST也可以吗?


<form method="POST" action="http://the.other.server.com/script.php">

如果要在服务器上执行此操作(即,希望服务器充当代理),可以使用cURL

//extract data from the post
extract($_POST);

//set POST variables
$url = 'http://domain.com/get-post.php';
$fields_string = "";
$fields = array(
        'lname'=>urlencode($last_name), // Assuming there was something like $_POST[last_name]
        'fname'=>urlencode($first_name)
    );

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
$fields_string = rtrim($fields_string,'&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);
但是,如果您只是想向另一台服务器发送POST请求,则只需更改
操作
属性:

<form action="http://some-other-server.com" method="POST">

还有一个关于堆栈溢出的问题,它显示了一种更好的方法来url化变量。这更好,因为当您使用嵌套关联数组(又称散列)时,上面答案中显示的方法会中断


如果您确实希望手动构建该查询字符串,可以。但是,http_build_查询将使您的“url为帖子提供数据”部分变得不必要Benjamin Powers 11月28日12时48分,这很好,但问题是:POST数据实际上是通过外部php脚本接收的吗?post数据不是由apache在本地处理的吗?数据将转到您在
操作中指定的任何URL。如果它完全位于另一台服务器上,则它将转到该服务器,并且永远不会接触从中加载表单的服务器。@rom-POST数据由接收HTTP请求的服务器“本地”处理。它将被接收。唯一可能导致它似乎没有收到的可能性是:a)您用于值的名称不同b)它检查引用者。@Ben D:完全错误。POST数据在消息正文中发送。GET数据“在标题中”,因为它是请求URL的一部分。我只是不知道可以跨服务器发布。我不知道POST方法是如何工作的。谢谢